【问题标题】:HAProxy + mod_pagespeedHAProxy + mod_pagespeed
【发布时间】:2015-05-28 06:10:43
【问题描述】:

我目前有 3 个 Web 服务器配置,其中 HAProxy 将流量分配到每个 Web 服务器之一。每台服务器都使用 mod_pagespeed 运行 apache2。 HAProxy 负责 SSL 终止,因为 Web 服务器位于本地网络中。

HAProxy 为每个请求设置 X-Forwareded-Proto 标头,并且我在每个 pagespeed 配置中启用了“ModPagespeedRespectXForwardedProto on”。

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

感谢任何帮助!

【问题讨论】:

  • Pagespeed 似乎在 HTML 中添加了 javascript 文件
  • 删除过滤器 ModPagespeedEnableFilters resize_mobile_images,insert_image_dimensions 时问题似乎消失了

标签: apache haproxy pagespeed mod-pagespeed


【解决方案1】:

这个问题很老,但我将回答我如何在自己的设置中解决它。

如果您在每台服务器上使用 pagespeed 而不是在 haproxy 本身上运行它以进行缓存,就会出现问题。由于 pagespeed 会保存任何已修改文件的副本并修改文件名,因此它还会更改 HTML 的源以匹配它存储的新文件名,这应该可以正常工作。但问题是 Web 服务器 1 上的 pagespeed 正在修改 HTML 以匹配文件(图像、js、css 等)的背景压缩,然后当它到达用户计算机并且他们的浏览器请求此类文件时,它不会找到它如果您在服务器之间循环使用它,因为该文件将仅在 Web 服务器 1 上而不在其他服务器上,解决方法是使用共享文件夹来提高页面速度,因此当一个人将文件压缩到该文件夹​​中时,另一个 Web服务器将通过它们的页面速度看到它。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2015-09-09
    • 2011-06-20
    • 2013-11-22
    • 2017-07-18
    • 2017-12-06
    相关资源
    最近更新 更多