Kubernetes Nginx Ingress删除部分URL

山姆·科根|

我正在Kubernetes中(在AKS上)部署一个简单的应用程序,该应用程序位于使用Nginx的Ingress后面,并使用Nginx掌舵图进行了部署。我有一个问题,由于某种原因,Nginx似乎没有将完整的URL传递给后端服务。

例如,我的Ingress是使用http://app.client.com的URL设置的,并且/ app1g的路径为http://app.client.com/app1可以正常工作。但是,如果我尝试转到http://app.client.com/app1/service1,而我最终只访问了http://app.client.com/app1,则该路径之后似乎剥夺了所有内容。

我的入口看起来像这样:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
  creationTimestamp: "2019-04-03T12:44:22Z"
  generation: 1
  labels:
    chart: app-1.1
    component: app
    hostName: app.client.com
    release: app
  name: app-ingress
  namespace: default
  resourceVersion: "1789269"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/app-ingress
  uid: 34bb1a1d-560e-11e9-bd46-9a03420914b9
spec:
  rules:
  - host: app.client.com
    http:
      paths:
      - backend:
          serviceName: app-service
          servicePort: 8080
        path: /app1
  tls:
  - hosts:
    - app.client.com
    secretName: app-prod
status:
  loadBalancer:
    ingress:
    - {}

如果我移植到该服务并直接点击该服务,则它可以工作。

山姆·科根|

所以我找到了答案。从Nginx v0.22.0开始,您似乎需要使用捕获组来捕获请求URI中的任何子字符串。在0.22.0之前,使用仅nginx.ingress.kubernetes.io/rewrite-target: /适用于任何子字符串。现在没有。我需要修改入口才能使用此功能:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  creationTimestamp: "2019-04-03T12:44:22Z"
  generation: 1
  labels:
    chart: app-1.1
    component: app
    hostName: app.client.com
    release: app
  name: app-ingress
  namespace: default
  resourceVersion: "1789269"
  selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/app-ingress
  uid: 34bb1a1d-560e-11e9-bd46-9a03420914b9
spec:
  rules:
  - host: app.client.com
    http:
      paths:
      - backend:
          serviceName: app-service
          servicePort: 8080
        path: /app1/?(.*)
  tls:
  - hosts:
    - app.client.com
    secretName: app-prod
status:
  loadBalancer:
    ingress:
    - {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

kubernetes nginx ingress controller / caching static assets

来自分类Dev

使用NGINX Ingress进行Kubernetes角色管理

来自分类Dev

Kubernetes Nginx Ingress文件上传返回502

来自分类Dev

kubernetes nginx.ingress多个websocket服务

来自分类Dev

kubernetes nginx.ingress多个websocket服务

来自分类Dev

Kubernetes NGINX-INGRESS我需要运行NGINX服务吗?

来自分类Dev

Nginx Ingress Controller在Google Kubernetes Engine上找不到节点

来自分类Dev

Nginx Kubernetes Ingress不提供.ttf或.woff文件

来自分类Dev

如何使用Nginx-ingress-controller Kubernetes公开localhost气流

来自分类Dev

带有Angular的Kubernetes NGINX Ingress返回错误的MIME类型

来自分类Dev

Kubernetes:使用 Let's Encrypt 公开 NGINX Ingress

来自分类Dev

为什么 nginx 在我的 Kubernetes Ingress 路由上返回 404?

来自分类Dev

如何在Kubernetes Nginx Ingress Controller中将Nginx IP附加到X-Forwarded-For

来自分类Dev

Kubernetes 服务的 Nginx 路由

来自分类Dev

Kubernetes 1.16 Nginx Ingress(0.26.1)TCP Mariadb / MySQL服务无法正常工作

来自分类Dev

使用Nginx-ingress从外部kubernetes集群向RabbitMQ发送消息

来自分类Dev

Vue.js进入Kubernetes集群,刷新后Nginx Ingress返回404

来自分类Dev

在Docker Windows上运行kubernetes ingress-nginx时找不到404页面

来自分类Dev

从Kubernetes NGINX Ingress控制器公开服务始终返回502 Bad Gateway

来自分类Dev

AWS 上的 Kubernetes:使用 nginx-ingress + cert-manager 保留客户端 IP

来自分类Dev

如何为 kubernetes nginx-ingress 启用 vts 仪表板?

来自分类Dev

Kubernetes Nginx入口路由路径

来自分类Dev

在Kubernetes NGINX入口控制器后面托管具有相对URL的Webapp

来自分类Dev

如何使用适用于Windows的Docker桌面公开postgres tcp端口Kubernetes和Ingress-nginx

来自分类Dev

我的测试 Web 应用程序显示错误,我在 Dockerfile 中使用 nginx - kubernetes minikube 中的 ingress

来自分类Dev

具有2个入口的Kubernetes(nginx)

来自分类Dev

Nginx和Kubernetes背后的黑角页面

来自分类Dev

无法在 Kubernetes 中为 Nginx 创建 ReplicationController

来自分类Dev

kubernetes - 从 nginx docker 镜像公开内容

Related 相关文章

  1. 1

    kubernetes nginx ingress controller / caching static assets

  2. 2

    使用NGINX Ingress进行Kubernetes角色管理

  3. 3

    Kubernetes Nginx Ingress文件上传返回502

  4. 4

    kubernetes nginx.ingress多个websocket服务

  5. 5

    kubernetes nginx.ingress多个websocket服务

  6. 6

    Kubernetes NGINX-INGRESS我需要运行NGINX服务吗?

  7. 7

    Nginx Ingress Controller在Google Kubernetes Engine上找不到节点

  8. 8

    Nginx Kubernetes Ingress不提供.ttf或.woff文件

  9. 9

    如何使用Nginx-ingress-controller Kubernetes公开localhost气流

  10. 10

    带有Angular的Kubernetes NGINX Ingress返回错误的MIME类型

  11. 11

    Kubernetes:使用 Let's Encrypt 公开 NGINX Ingress

  12. 12

    为什么 nginx 在我的 Kubernetes Ingress 路由上返回 404?

  13. 13

    如何在Kubernetes Nginx Ingress Controller中将Nginx IP附加到X-Forwarded-For

  14. 14

    Kubernetes 服务的 Nginx 路由

  15. 15

    Kubernetes 1.16 Nginx Ingress(0.26.1)TCP Mariadb / MySQL服务无法正常工作

  16. 16

    使用Nginx-ingress从外部kubernetes集群向RabbitMQ发送消息

  17. 17

    Vue.js进入Kubernetes集群,刷新后Nginx Ingress返回404

  18. 18

    在Docker Windows上运行kubernetes ingress-nginx时找不到404页面

  19. 19

    从Kubernetes NGINX Ingress控制器公开服务始终返回502 Bad Gateway

  20. 20

    AWS 上的 Kubernetes:使用 nginx-ingress + cert-manager 保留客户端 IP

  21. 21

    如何为 kubernetes nginx-ingress 启用 vts 仪表板?

  22. 22

    Kubernetes Nginx入口路由路径

  23. 23

    在Kubernetes NGINX入口控制器后面托管具有相对URL的Webapp

  24. 24

    如何使用适用于Windows的Docker桌面公开postgres tcp端口Kubernetes和Ingress-nginx

  25. 25

    我的测试 Web 应用程序显示错误,我在 Dockerfile 中使用 nginx - kubernetes minikube 中的 ingress

  26. 26

    具有2个入口的Kubernetes(nginx)

  27. 27

    Nginx和Kubernetes背后的黑角页面

  28. 28

    无法在 Kubernetes 中为 Nginx 创建 ReplicationController

  29. 29

    kubernetes - 从 nginx docker 镜像公开内容

热门标签

归档