我目前有3个Web服务器配置,HAProxy将流量分配给每个Web服务器之一。每个服务器都运行带有mod_pagespeed的apache2。当Web服务器位于本地网络中时,HAProxy负责SSL终止。
HAProxy将X-Forwareded-Proto标头设置为每个请求,并且我已启用" ModPagespeedRespectXForwardedProto on"在每个pagespeed配置中。
Apache服务正在自定义端口8012中运行,现在我在访问网站时从pagespeed收到错误的javascript控制台:
Mixed Content: The page at 'https://www.example.com/' was loaded over HTTPS, but requested an insecure script 'http://www.example.com:8012/_,Mjo.NZsywmsdso.js.pagespeed.jm.OLNkjPSHpv.js'. This request has been blocked; the content must be served over HTTPS.
知道什么可能仍然是错的?这是pagespeed HTTPS配置:
ModPagespeedFetchFromModSpdy on
ModPagespeedFetchHttps enable
ModPagespeedSslCertDirectory /etc/ssl/certs
ModPagespeedSslCertFile /etc/ssl/certs/cert.pem
ModPagespeedMapOriginDomain "http://www.example.com" "https://www.example.com"
ModPagespeedRespectXForwardedProto on
感谢任何帮助!
答案 0 :(得分:0)
这个问题已经过时了,但我将回答如何在自己的设置中解决这个问题。
如果您在每台服务器上使用pagespeed而不是以某种方式在haproxy上运行它来进行缓存,则会出现问题。由于pagespeed保存了任何修改过的文件的副本,并对文件名进行了修改,因此它也会更改HTML的来源以匹配它存储的新文件名,这应该可以正常工作。但问题是web服务器1上的pagespeed正在修改HTML以匹配文件(图像,js,css等)的后台压缩,然后当它到达用户计算机并且他们的浏览器请求这样的文件时它不会找到它你在服务器之间进行循环,因为该文件只在web服务器1而不在其他服务器上,周围的方法是使用共享文件夹作为pagespeed,这样当一个文件压缩到该文件夹时,另一个web服务器将通过其pagespeed看到它。