这是我第一次使用GC实例和负载均衡器。我有一个运行带有nginx的基本WordPress站点的计算引擎实例。它做得很好。我添加了HTTP(S)负载均衡器作为https。运行一些测试,一切都很好。打开云CDN,似乎最初工作正常(虽然它通过日志记录验证这一点)。昨天我发现重定向无法正常工作。我用24小时前修复了nginx。如果我绕过负载均衡器并直接进入服务器,那么“修复”从那时起就一直有效。如果我通过负载均衡器(使用curl)请求,我得到的结果与昨天相同。我已经从CDN中使整个缓存无效。等了几个小时,没有变化。然后从负载均衡器中完全删除CDN选项。从那以后它已经超过2个小时了,我仍然像昨天一样得到缓存的URL。据我所知,谷歌正在使用Cache-control标头,这很短。错误的请求标头:
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 30 Mar 2018 20:48:34 GMT
Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
Vary: Accept-Encoding, Cookie
Cache-Control: max-age=3, must-revalidate
Strict-Transport-Security: max-age=31536000;includeSubdomains
Via: 1.1 google
Transfer-Encoding: chunked
我缺少什么?
答案 0 :(得分:0)
我已更改的原始重定向规则(直接在服务器上工作正常,但通过负载均衡器完全没有):
rewrite ^(.*) https://www.example.com$request_uri? permanent;
在该行下面添加此语句现在可以通过负载均衡器而不是:
if ($http_x_forwarded_proto = "http") {
return 301 https://www.example.com$request_uri;
}
这对我来说仍然是一个谜,但我恢复了生命和理智。