在http和https

时间:2016-10-27 13:10:26

标签: apache https cdn mod-pagespeed

我们正在varnish后面的ngnix后面的几个apache节点上运行mod-pagespeed,它位于处理https的{​​{3}}后面。 因此,所有请求都以http的形式到达apache,但需要额外x-proto header

PageSpeed在http上工作正常,并将网址重写为所需的cdn域,但未在https次请求中执行此操作。

设置:

ModPagespeedRespectXForwardedProto on
ModPagespeedDomain mycdn.azureedge.net
ModPagespeedMapRewriteDomain mycdn.azureedge.net *mydomain.com

其中mycdn.azureedge.net是cdn,mydomain.com是我的网站。

我的完整mod_pagespeed配置can be found here

如果我将ModPagespeedRespectXForwardedProto设置为off,则https请求会将链接重写为cdn,但http为协议。

我确实设置了一台本地机器(带有docker)来测试这个localy并遇到同样的问题。 Pagespeed适用于http,不会为https重写URL。如果我使用调试过滤器,即使在https请求中也会添加调试信息,因此最终可以为两种协议运行Pagespeed。

我还添加了the stats_log_global output as a pastebin herethe debug log output from the html here

如何让pageSpeed在https请求中重写这些网址?

1 个答案:

答案 0 :(得分:1)

我对您的域名不太清楚,正如您提到的example.net和example.com,但它们不会出现在您的配置中。你是通过CDN自己和一些人提供内容吗?

您是否尝试按照文档中的建议设置ModPagespeedMapOriginDomain?看起来您需要在前面添加协议才能使映射正常工作。

https://developers.google.com/speed/pagespeed/module/https_support#map_the_origin

你肯定需要重写域名吗?似乎映射原点就足够了。