我有一个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
文件等)。
对于为什么会发生这种情况,有什么想法吗?
如有任何帮助,我们不胜感激!
发布于 2019-11-18 19:03:35
configuration-snippet将与nginx入口一起工作
您可以使用类似于
nginx.ingress.kubernetes.io/configuration-snippet : |
if ($request_uri ~* \.(js|css|gif|jpe?g|png)) {
expires 1M;
add_header Cache-Control "public";
}
https://stackoverflow.com/questions/52711061
复制相似问题