Dan*_*nny 1 ssl https nginx pagespeed cloudflare
我刚刚开始使用 CloudFlare“灵活 SSL”,这允许用户在连接到我的服务器时拥有 SSL(当然是通过 CloudFlare)。
\n\n请求的流程如下:
\n\n访客<-- SSL --> CloudFlare <-- 非 SSL -->我的服务器(Nginx w/pagespeed)
\n\n当 Nginx 重写我的资源(css、js、jpegs 等)时,问题就出现了,nginx 总是收到来自 CloudFlare 的 http 请求,所以显然 Nginx 将资源返回为 http(在 html 中),当用户尝试加载它们时,他们会得到浏览器上有一个丑陋的图标,警告不安全的内容,或者根本不加载不安全的内容,从而完全破坏页面。
\n\n这些是我当前正在使用的过滤器:pagespeed EnableFilters move_css_above_scripts,move_css_to_head,rewrite_style_attributes,combine_javascript,insert_image_dimensions,collapse_whitespace,sprite_images,ins\xe2\x80\x8c\xe2\x80\x8bert_dns_prefetch;
那么如何让 nginx pagespeed 以 https 形式返回资源呢?当请求是http时,如何作为非https?
\n\n谢谢。
\n只要 CloudFlare 发送标准X-Forwarded-Proto
标头,您只需启用即可解决此问题RespectXForwardedProto
:
pagespeed RespectXForwardedProto on;
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,这可能意味着 CloudFlare 没有发送正确的X-Forwarded-Proto
标头。如果是这样,您可以尝试启用PreserveUrlRelativity
:
pagespeed PreserveUrlRelativity on;
Run Code Online (Sandbox Code Playgroud)
这将重写 URL,但将它们保留为相对 URL(以便它们同时适用于 HTTP 和 HTTPS)。
归档时间: |
|
查看次数: |
1915 次 |
最近记录: |