我尝试将Google Cloud CDN配置为我的容器引擎项目。
按照文档,它具有内容长度标头或传输编码标头以进行缓存。
我的后端使用 gzip 压缩,所以我有传输编码:分块
问题是入口负载均衡器似乎删除了传输编码标头,因此我无法进行"缓存命中">
我使用"kubectl port-forward"将 direclty 连接到实例后端,并且我有传输编码标头。
但是当我连接到外部IP时,标头已经消失了。
这是我的入口配置
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: gateway-preprod3-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: gateway-preprod2-static-ip
spec:
tls:
- secretName: gateway-preprod-secret-2018-with-ca-7
backend:
serviceName: gateway-preprod
servicePort: 80
这是我的部署配置
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: gateway-preprod
spec:
replicas: 1
strategy:
type: RollingUpdate
minReadySeconds: 50
template:
metadata:
labels:
app: gateway-preprod
spec:
containers:
- name: gateway-preprod
image: eu.gcr.io/writecontrol-1055/gateway:v305
env:
- name: writecontrolEnv
value: preprod
ports:
- containerPort: 80
相反,对于某些未压缩 GZIP 的资源,会给出内容长度标头,并且我有一个成功的"缓存命中">
Kubernetes 版本是 1.7.12-gke.1
。这里有一个URL来测试它:https://preprod-writecontrol.ovh
我不确定为什么你的回复有Transfer-Encoding
标题。此标头不应位于源(您的应用程序(中,它通常由其他跃点添加,例如云 HTTP 负载均衡器 (=Ingress( 等代理。
有关Transfer-Encoding
的更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Transfer-Encoding
我能够使用 Content-Encoding
标头自己让 CDN 使用 GZIP 响应:
首先阅读 https://cloud.google.com/cdn/docs/caching 中的缓存要求。您需要一个Content-Length
和/或Cache-Control: public
标头。因此,将这些标头编码到应用程序服务器中。
在入口创建的负载均衡器上启用 CDN 后,发出两个请求,如果您在第二个请求上看到Age
标头(如下所述(,则表示您的请求现在正在从 CDN 提供服务。
curl -vH Accept-Encoding:gzip 35.186.195.233
> [...]
>
< HTTP/1.1 200 OK
< Content-Encoding: gzip
< Date: Tue, 27 Mar 2018 19:38:20 GMT
< Content-Length: 87
< Content-Type: application/x-gzip
< Via: 1.1 google
< Cache-Control: max-age=600,public
��H����Q(�/�IQ�
* Connection #0 to host 35.186.195.233 left intact
K-*��ϳR0�3�3���/.�K�M�R�)+OM�55575��L�4ѭ�N+L���K��4A
第二个请求(请注意Age
标头(:
$ curl -vH Accept-Encoding:gzip 35.186.195.233
[...]
>
< HTTP/1.1 200 OK
< Cache-Control: max-age=600,public
< Content-Encoding: gzip
< Date: Tue, 27 Mar 2018 19:42:01 GMT
< Content-Length: 87
< Content-Type: application/x-gzip
< Via: 1.1 google
< Age: 314
<
��H����Q(�/�IQ�
* Connection #0 to host 35.186.195.233 left intact
K-*��ϳR0�3�3���/.�K�M�R�)+OM�55575��L�4ѭ�N+L���K��4A