【问题标题】:Ingress Nginx inject subpath to root URIIngress Nginx 将子路径注入根 URI
【发布时间】:2022-12-14 08:01:20
【问题描述】:

我正在尝试在 Ingress-Nginx 控制器 (helm.sh/chart=ingress-nginx-4.2.0) 中执行以下 uri 操作

如果 URI 恰好是 /,则传递 https://example.com/ -to-> https://backend_server/devportal/

但是如果 URI 匹配这个模式(/a|/b|/c),那么就转发到https://backend_server/a|b|c

看似简单的要求在 Nginx 配置中是这样工作的:

server {
  listen       *:443 ssl; # Listen on port 443 
  location / {
    proxy_pass            https://backend_server/devportal/;
    proxy_redirect        https://backend_server/devportal/ /;
    # proxy_cookie_path     /devportal /;
  }
  location ~ (/a|/b|/c) {
    proxy_pass      https://backend_server;
    proxy_redirect  https://backend_server/devportal/ /;
  }
}

我无法在ingress-nginx 上复制。我尝试了以下内容:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/proxy-connect-timeout: 90s
    nginx.ingress.kubernetes.io/proxy-read-timeout: 90s
    nginx.ingress.kubernetes.io/proxy-redirect-from: /devportal/
    nginx.ingress.kubernetes.io/proxy-redirect-to: /
    nginx.ingress.kubernetes.io/proxy-send-timeout: 90s
    nginx.ingress.kubernetes.io/rewrite-target: /devportal/$1
    # nginx.ingress.kubernetes.io/app-root: /devportal
  name: multitenancy-ingress
  namespace: wso2
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          service:
            name: my-svc
            port:
              name: servlet-https
        path: /(.*)
        pathType: ImplementationSpecific
  tls:
  - hosts:
    - example.com
    secretName: my-tls

当转到https://example.com/时,后端应用程序收到/请求(GET / HTTP/1.1 302

  1. 为什么重写不工作
  2. 我将如何满足入口对象中的两种用例

【问题讨论】:

    标签: nginx nginx-ingress nginx-config


    【解决方案1】:

    您是否尝试使用 nginx.ingress.kubernetes.io/stream-sn-p 注释进行入口?

    您能否像文档中那样使用此注释来尝试使用工作配置: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md#stream-snippet

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 2021-05-15
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2019-01-16
      • 1970-01-01
      相关资源
      最近更新 更多