Apache 在http和https上重写cdn的URL

Apache 在http和https上重写cdn的URL,apache,https,cdn,mod-pagespeed,Apache,Https,Cdn,Mod Pagespeed,我们在服务器apache节点上运行mod pagespeed,该节点位于一个处理https的wich后面。 因此,所有请求都以httphttp的形式到达apache,但需要额外的一个请求 PageSpeed在http上运行良好,可以将URL重写到所需的cdn域,但在https请求中无法执行此操作 设置: ModPagespeedRespectXForwardedProto on ModPagespeedDomain mycdn.azureedge.net ModPagespeedMapRewri

我们在服务器apache节点上运行mod pagespeed,该节点位于一个处理
https
的wich后面。 因此,所有请求都以http
http
的形式到达apache,但需要额外的一个请求

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配置

如果我确实将
modpagespeedreserverxforwardedproto
设置为
off
,对于
https
请求,链接将被重写到cdn,但协议为
http

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

我还加了一句


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

我不太清楚您的域,正如您提到的example.net和example.com,但它们不会出现在您的配置中。您是否通过CDN为自己和某些人提供服务

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


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

example.net和example.com都是示例。ModPagespeedMapOriginDomain是处理如何获取更改(压缩等)的数据,而不是如何重写域。是的,我确实需要重写域。映射将如何使最终用户从我的cdn加载数据?好的,我仍然不太清楚体系结构是什么。一切正常吗?它只有几页。是否只有部分内容来自CDN,还是全部来自CDN?映射没有帮助,但从您的问题中不清楚反向代理是否存在问题。http和https都存在。所有内容都在我们的服务器上。如果通过cdn调用任何资产url,cdn将从我们的服务器复制、缓存并交付它。我的问题是:“如何让pageSpeed在https请求上重写这些URL?”。您是否认为反向代理可能是重写过程中的一个问题?域重写过程不应该关心资产的位置或如何正确访问它们?