【问题标题】:Ingress-nginx why location is different from same ingress file?Ingress-nginx 为什么位置与同一个入口文件不同?
【发布时间】:2021-12-03 14:59:44
【问题描述】:

我在我的 GKE 集群中使用 ingress-nginx 来公开我的服务。 我有 2 个不同的 GKE 集群(v1.19.12-gke.2101),它们都使用 ingress-nginx(图表 v4.0.6)。

在这些集群上,我使用 oauth-proxy 公开了一些服务。它在第一个集群上完美运行,但在路径 /test/ 上带有 404 的第二个集群上却不行。我已经调查了很长时间,但没有找到可能导致此问题的原因。我发现的主要区别在于位置不同的 nginx.conf 文件。这是区别:

第一个集群(工作):

location ~* "^/test(/|$)(.*)/" {

第二个集群(不工作):

location /test(/|$)(.*)/ {

这是用于此行的入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/auth-url: "<auth-url>"
    nginx.ingress.kubernetes.io/auth-signin: "<auth-signin>"
    nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
    kubernetes.io/tls-acme: 'true'
    ingress.kubernetes.io/force-ssl-redirect: 'true'
    nginx.ingress.kubernetes.io/proxy-body-size: 500m
    cert-manager.io/cluster-issuer: "letsencrypt-prod-dns01"
  name: service-oauth
  namespace: default
spec:
  rules:
  - host: "test.com"
    http:
      paths:
      - path: "/test(/|$)(.*)"
        pathType: ImplementationSpecific
        backend:
          service:
            name: test
            port:
              number: 1234
  ingressClassName: nginx
  tls:
  - secretName: test-tls
    hosts:
      - "test.com"

我检查了所有配置文件(入口、服务),没有发现任何差异。如果您知道问题出在哪里,请告诉我。

感谢您的帮助。

【问题讨论】:

    标签: kubernetes google-kubernetes-engine ingress-nginx


    【解决方案1】:

    您缺少启用正则表达式的注释,即:

    nginx.ingress.kubernetes.io/use-regex: "true"
    

    您可以通过访问 url 来测试这是否是问题:

    test.com/test(/|$)(.*)
    

    并检查是否有不同的 NGINX 回答您(oauth 代理)以及 NGINX 是否记录了不同的内容(应将请求转发到正确的服务)


    至于为什么它在第一个集群上工作。你是否为同一主机启用了正则表达式(或使用重写目标)但在另一个入口上?

    我曾经也注意到这种行为.. 没有此注释的入口(也没有rewrite-target 注释)工作得非常好,而它不应该.. 我很确定这是因为还有其他入口对于指定使用正则表达式注释的同一主机。

    【讨论】:

    • 谢谢!添加注释使其工作。是的,在第一个集群上,一个入口已经有了这个注释,而第二个集群没有它。很高兴知道..
    猜你喜欢
    • 2022-08-10
    • 2021-05-16
    • 2021-10-21
    • 2018-03-17
    • 2019-09-30
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多