kubernetes nginx ingress服务器代码段注释未生效

kubernetes nginx ingress服务器代码段注释未生效,kubernetes,kubernetes-helm,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Helm,Kubernetes Ingress,Nginx Ingress,我有以下几个问题 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: nginx-configuration-snippet annotations: nginx.ingress.kubernetes.io/rewrite-target: /$2 nginx.ingress.kubernetes.io/server-snippet: | location /b

我有以下几个问题

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    name: nginx-configuration-snippet
    annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /$2
        nginx.ingress.kubernetes.io/server-snippet: |
          location /base/path/v1/api/update {
              deny all;
              return 404;
            }
spec:
  rules:
    - http:
        paths:
          - path: /base/path(/|$)(.*)
            backend:
              serviceName: myApi
              servicePort: 8080
但当我将PUT请求发送到/base/path/v1/api/update而不是404时,我得到的是500,这意味着可以从入口控制器访问该路径。有人能帮我找出原因吗

我更改为配置代码段,得到的错误是:

Error: exit status 1
2020/08/06 18:35:07 [emerg] 1734#1734: location "/base/path/v1/api/update" is outside location "^/base/path(/|$)(.*)" in /tmp/nginx-cfg008325631:2445
nginx: [emerg] location "/base/path/v1/api/update" is outside location "^/base/path(/|$)(.*)" in /tmp/nginx-cfg008325631:2445
nginx: configuration file /tmp/nginx-cfg008325631 test failed
补充我自己的答案: 对我有效的最终配置是:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    name: nginx-configuration-snippet
    annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /$2
        nginx.ingress.kubernetes.io/server-snippet: |
          location ~* "^/base/path/v1/api/update" {
              deny all;
              return 403;
            }
spec:
  rules:
    - http:
        paths:
          - path: /base/path(/|$)(.*)
            backend:
              serviceName: myApi
              servicePort: 8080

您是否将生成的nginx.conf拉下来并确保它是在您期望的地方编写的?还有,这是一种迂腐,说每台主机一次,但你没有主机-所以,他们可能只是突然停止,希望在控制器日志中记录一些东西是的,没有操作。还有其他方法吗?一种方法是实际声明一个host:value,看看这是否会让它不那么生气,另一种方法是使用ConfigMap设置。事实上,我添加了更多描述,我尝试了配置片段,它似乎不再是一个no op。但现在却出现了错误。虽然无法理解错误,但您是否将生成的配置从控制器盒中复制出来并查看它?nginx配置是一片荒芜而神秘的土地,但如果不查看配置文件,任何人都无法猜到哪里出了问题