【发布时间】:2021-01-02 21:11:36
【问题描述】:
最近我部署了一个运行 wordpress 实例和 phpmyadmin 的 kubernetes 集群。我正在使用 Nginx 入口控制器为这两个服务执行基于路径的路由。但是,对/ 的请求没有任何麻烦,但是当我请求domain.com/phpmyadmin/ 时,我得到一个登录页面,之后我被重定向到domain.com/index.php 而不是domain.com/phpmyadmin/index.php。请建议我为此转身。谢谢大家的支持:)
我的 ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-nginx
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/add-base-url : "true"
nginx.ingress.kubernetes.io/rewrite-target: "/$2"
# ingress.kubernetes.io/rewrite-target: "^/phpmyadmin/"
spec:
rules:
- host: example.domain.com
http:
paths:
- path: /
backend:
serviceName: wordpress
servicePort: 80
- path: /phpmyadmin(/|$)(.*)
backend:
serviceName: phpmyadmin
servicePort: 80
【问题讨论】:
-
此配置按设计工作。如果您检查Ingress rewrite docs,它会将
rewrite.bar.com/something/重定向到rewrite.bar.com/,我猜index.php是这里的默认后端。另外,您使用的是哪个入口版本?nginx.ingress.kubernetes.io/add-base-url已在v0.22中删除。当你curl它时你得到什么回应? -
@PjoterS 感谢您的回复。是的,我确实看到它是设计使然,但我面临的问题也是一个用例。目前我正在使用 v0.35,我得到的响应是 302 found。
标签: nginx kubernetes google-kubernetes-engine kubernetes-ingress nginx-reverse-proxy