【发布时间】:2019-03-13 15:26:59
【问题描述】:
我有一个 ingress-nginx 控制器来处理我在 GKE 上托管的 Kubernetes 集群的流量。我使用文档中的 helm 安装说明进行了设置:
在大多数情况下,一切正常,但如果我尝试通过 server-snippet 注释设置缓存相关参数,则所有应获取缓存控制标头的服务内容都会以 404 的形式返回。
这是我的ingress-service.yaml 文件:
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 文件等)。
对为什么会发生这种情况有任何想法吗?
感谢任何帮助!
【问题讨论】:
标签: nginx kubernetes kubernetes-ingress google-kubernetes-engine nginx-ingress