首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes nginx入口服务器-代码段注释不生效

kubernetes nginx入口服务器-代码段注释不生效
EN

Stack Overflow用户
提问于 2020-08-06 08:29:40
回答 1查看 3.9K关注 0票数 2

我已经关注了ingress.yaml

代码语言:javascript
复制
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而不是PUT 404时,我得到的是500,这意味着可以从入口控制器访问该路径。有人能帮我找出原因吗?

我改成了configuration-snippet,我得到的错误是:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-08-15 07:37:36

加上我自己的答案:对我有效的最终配置是:

代码语言:javascript
复制
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
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63275239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档