首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在kubernetes GKE上设置nginx入口控制器的cache-control头

在kubernetes GKE上设置nginx入口控制器的cache-control头
EN

Stack Overflow用户
提问于 2018-10-09 06:50:32
回答 1查看 8.6K关注 0票数 5

我有一个ingress-nginx控制器来处理GKE上托管的Kubernetes集群的流量。我使用文档中的helm安装说明对其进行了设置:

Docs here

大多数情况下,一切都正常,但如果我尝试通过server-snippet注释设置与缓存相关的参数,所有应该获得缓存控制标头的已提供内容都将作为404返回。

这是我的ingress-service.yaml文件:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-read-timeout: "4000"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "4000"
    nginx.ingress.kubernetes.io/server-snippet: |
      location ~* \.(js|css|gif|jpe?g|png)$ {
        expires 1M;
        add_header Cache-Control "public";
      }
spec:
  tls:
    - hosts:
        - example.com
      secretName: example-com
  rules:
    - host: example.com
      http:
       paths:
        - path: /
          backend:
            serviceName: client-cluster-ip-service
            servicePort: 5000
        - path: /api/
          backend:
            serviceName: server-cluster-ip-service
            servicePort: 4000

同样,只有与正则表达式匹配的资源才会返回为404 (所有.js文件、.css文件等)。

对于为什么会发生这种情况,有什么想法吗?

如有任何帮助,我们不胜感激!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52711061

复制
相关文章

相似问题

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