自从我在我们的 LAMP 服务器上安装了 mod_pagespeed 后,我一直遇到问题,但我似乎找不到答案
设置:
- 跨 4 个 LAMP 服务器的负载均衡器
- http 和 https 页面的混合
- 产品图像通过挂载的磁盘 (/mnt/media_images/) 在服务器之间共享
- Apache别名设置:
别名 /images/media /mnt/media_images
(即www.example.com/images/media/test.jpg位于服务器上的/mnt/media_images/test.jpg) - mod_pagespeed 安装在具有完全相同配置的所有服务器上:
ModPagespeed 开启 ModPagespeedRespectXForwardedProto on ModPagespeedMapOriginDomain "http://localhost" "http://www.example.com" ModPagespeedMapOriginDomain "http://localhost" "https://www.example.com" ModPagespeedMaxInlinedPreviewImagesIndex 20 ModPagespeedEnableFilters remove_comments、collapse_whitespace、combine_javascript、insert_dns_prefetch、defer_javascript、insert_image_dimensions、lazyload_images
问题:
mod_pagespeed 优化了http上的所有图像,重写文件名并获取它们没有问题,即:
- http://www.example.com/images/layout/example1.jpg到http://www.example.com/images/layout/example1.jpg.pagespeed.ce.Sh5dWv3czL.jpg
- http://www.example.com/images/media/example2.jpg到http://www.example.com/images/media/example2.jpg.pagespeed.ce.Sh5dWv3czL.jpg
在https上,所有非产品图像都可以正常工作,就像在 http 上一样,即:
- https://www.example.com/images/layout/example1.jpg到https://www.example.com/images/layout/example1.jpg.pagespeed.ce.Sh5dWv3czL.jpg
...但产品图片不起作用。文件名被重写,但访问这些重写的文件名返回 404。如果您采用重写的文件名并简单地将 https:// 更改为 http:// ,则会返回图像。
我已经在非负载平衡设置上对其进行了测试,并且似乎可以正常工作,因此问题似乎是负载平衡器与 https 和指向已安装磁盘的别名的组合。
任何帮助或建议将不胜感激