apache - 在 http 和 https 上重写 cdn 的 url

标签 apache https cdn mod-pagespeed

我们在 varnish 后面的几个 apache 节点上运行 mod-pagespeed其位于 ngnix 后面它处理 https。 所以所有请求都以 http 的形式到达 apache,但带有额外的 x-proto header .

PageSpeed 在 http 上工作正常,并将 url 重写到所需的 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 作为协议(protocol)。

我确实设置了一台本地机器(带 docker)来测试这个本地并遇到同样的问题。你的 Pagespeed 对于 http 工作正常,url 不会为 https 重写。如果我使用调试过滤器,即使在 https 请求中也会添加调试信息,因此 Pagespeed 肯定会针对这两种协议(protocol)运行。

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

我如何让 pageSpeed 也重写 https 请求上的那些 url?

最佳答案

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

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

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

您确定需要重写域吗?似乎映射原点就足够了。

关于apache - 在 http 和 https 上重写 cdn 的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40285466/

相关文章:

ruby-on-rails - 将/assets 放在 .slugignore 中,用于使用 asset_sync (S3/CDN) 的 Heroku 部署

javascript - Google Loader 与标准 <script> 标签

regex - 如何更正我的 htaccess 以代理搜索引擎抓取请求?

node.js - NginX 上的 SSL 证书

apache - mod_expires 还是 mod_headers?

Apache 网址映射

ios - 如何在 Swift 4 中通过 POST 请求发送图像?

seo - 将查询字符串附加到缓存的 Assets /图像(例如 Image.jpg?1234)是否会对 SEO 产生影响?

Apache RewriteMap 用于防止直接访问文件

php - .htaccess 重写 : subdomain as GET var and path as GET var