我正在部署这个列表。
- 前依据
- 背要点 MySQL依据
- PhpMyAdmin依据
- 入口依据
且Ingress NodePort为kubectl get svc -n ingress-nginx
中的80:31361, 443:30482
问题出在Ingress
。
加载PhpMyAdmin
页面,我输入url为http://my-ip:31361/pma
。
但是没有找到所有的资源,出现404错误。
如果我输入url为http://my-ip:31361/pma/
,它工作得很好。
唯一的区别是/
。
为什么会这样?
如何在没有/
的情况下显示pma
或main
?
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^/(main|pma)$ $1/ permanent;
spec:
rules:
- http:
paths:
- path: /main(/|$)(.*)
pathType: Prefix
backend:
service:
name: frontend-service
port:
number: 80
- path: /pma(/|$)(.*)
pathType: Prefix
backend:
service:
name: pma-service
port:
number: 80
因此,我没有删除/
。
然而,如果用户加载页面为/main
, nginx将重定向到/main/
,/pma
->/pma/
.
那么所有资源都是可访问的。
谢谢@P....