我们在一个varnish后面的几个apache节点上运行mod-pagespeed,它位于一个处理https的ngnix后面。因此所有请求都以http形式到达apache,但带有额外的x-proto header。
PageSpeed在http上运行良好,并将urls重写到所需的CDN域,但在https请求中无法执行此操作。
设置:
ModPagespeedRespectXForwardedProto on
ModPagespeedDomain mycdn.azureedge.net
ModPagespeedMapRewriteDomain mycdn.azureedge.net *mydomain.com其中mycdn.azureedge.net是cdn,anything mydomain.com是我的网站。
我的完整mod_pagespeed配置can be found here。
如果我将ModPagespeedRespectXForwardedProto设置为off,对于https请求,链接将被重写到cdn,但使用http作为协议。
我在本地设置了一台机器(带有docker)来测试它,也遇到了同样的问题。你的Pagespeed在http上运行得很好,urls不会为https重写。如果我使用调试过滤器,即使在https请求中也会添加调试信息,因此Pagespeed肯定会为两种协议运行。
我还添加了the stats_log_global output as a pastebin here和the debug log output from the html here。
如何让pageSpeed在https请求中重写这些urls?
发布于 2016-11-03 05:59:31
我不太清楚您的域,因为您提到了example.net和example.com,但它们不会出现在您的配置中。你是通过CDN来满足你自己和一些人吗?
您是否尝试过按照文档中的建议设置ModPagespeedMapOriginDomain?看起来您需要在前面添加协议才能使映射正常工作。
https://developers.google.com/speed/pagespeed/module/https_support#map_the_origin
你真的需要重写域名吗?似乎映射原点就足够了。
https://stackoverflow.com/questions/40285466
复制相似问题