kubernetes入口路径必须以/结尾才能被识别



我正在部署这个列表。

  1. 前依据
  2. 背要点
  3. MySQL依据
  4. PhpMyAdmin依据
  5. 入口依据

且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/,它工作得很好。

唯一的区别是/

为什么会这样?

如何在没有/的情况下显示pmamain?

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....

最新更新