Apache-2.2

使用 apache 的 pagespeed 反向代理伺服器的推薦配置

  • December 23, 2015

我想將伺服器設置為將 pagespeed 反向代理伺服器與 apache 一起用於多個無法在其源上執行 pagespeed 的站點。看來我應該能夠VirtualHost為每個站點創建一個並用於ModPagespeedMapProxyDomain指定源伺服器。我無法讓它工作。這是我到目前為止所擁有的。

  • http://origin.example.com/是所有動態和靜態內容的網路伺服器。它不執行頁面速度。
  • http://www.example.com/將被配置為反向代理的 pagespeed 伺服器。此處不託管任何文件。

我已經mod-pagespeed-stable-1.9.32.4-7251.x86_64為 CentOS 安裝了並且正在使用/etc/httpd/conf.d/pagespeed.conf除了CoreRules啟用的預設配置——請參閱我的配置

然後我添加了一個 VirtualHost 目錄:

<VirtualHost 111.222.333.444:80>
   ServerName www.example.com
   <IfModule pagespeed_module>
       ModPagespeed On
       ModPagespeedMapProxyDomain www.example.com origin.example.com
   </IfModule>
</VirtualHost>

現在對http://www.example.com/的任何請求都會導致一個帶有403 Forbidden標題的空頁面:

[q@localhost ~] curl -I http://www.example.com/
HTTP/1.1 403 Forbidden
[…]

請求被記錄到全域access_log,但沒有消息error_log(MPS 有自己的錯誤日誌嗎?)。我可以訪問http://www.example.com/pagespeed_global_admin,但沒有跡象表明有錯誤。

如果我刪除ModPagespeed*配置並使用 將虛擬主機設置為代理ProxyPassReverse / http://origin.example.com/,則站點載入正常。但是,當然,pagespeed 不會生效。

你能看出我做錯了什麼嗎?設置 pagespeed 反向代理的推薦方法是什麼?

這是我發現滿足我要求的配置。

實際上,需要使用mod_proxy,因為mod_pagespeed沒有實際代理請求的能力。此 VirtualHost 配置用於接收對 www.example.com 的請求,作為由位於 origin.example.com 的另一台伺服器提供的內容的代理。取消註釋這些ModPagespeedEnableFilters行以啟用特定的 PageSpeed 功能。您可以在 www.example.com/pagespeed_admin 查看 PageSpeed 管理員。

<VirtualHost 1.2.3.4:80>
   ServerName example.com
   ServerAlias www.example.com
   CustomLog /home/example/logs/access_log combined
   ErrorLog /home/example/logs/error_log
   <IfModule mod_proxy.c>
       ProxyPass /pagespeed_admin !
       ProxyPass /logs/ !
       ProxyPass / http://origin.example.com/
       ProxyPassReverse / http://origin.example.com/
       ProxyPassReverseCookieDomain origin.example.com www.example.com
       ProxyPreserveHost on
   </IfModule>
   <IfModule pagespeed_module>
       ModPagespeed On
       ModPagespeedMapRewriteDomain www.example.com origin.example.com
       ModPagespeedMapRewriteDomain example.com origin.example.com
       #ModPagespeedEnableFilters add_head
       #ModPagespeedEnableFilters combine_heads
       #ModPagespeedEnableFilters inline_import_to_link
       #ModPagespeedEnableFilters outline_css
       #ModPagespeedEnableFilters outline_javascript
       #ModPagespeedEnableFilters move_css_above_scripts
       #ModPagespeedEnableFilters move_css_to_head
       #ModPagespeedEnableFilters combine_css
       #ModPagespeedEnableFilters rewrite_css
       #ModPagespeedEnableFilters fallback_rewrite_css_urls
       #ModPagespeedEnableFilters rewrite_style_attributes
       #ModPagespeedEnableFilters rewrite_style_attributes_with_url
       #ModPagespeedEnableFilters flatten_css_imports
       #ModPagespeedEnableFilters prioritize_critical_css
       #ModPagespeedEnableFilters make_google_analytics_async
       #ModPagespeedEnableFilters rewrite_javascript
       #ModPagespeedEnableFilters rewrite_javascript_external
       #ModPagespeedEnableFilters rewrite_javascript_inline
       #ModPagespeedEnableFilters include_js_source_maps
       #ModPagespeedEnableFilters combine_javascript
       #ModPagespeedEnableFilters canonicalize_javascript_libraries
       #ModPagespeedEnableFilters inline_css
       #ModPagespeedEnableFilters inline_google_font_css
       #ModPagespeedEnableFilters inline_javascript
       #ModPagespeedEnableFilters local_storage_cache
       #ModPagespeedEnableFilters rewrite_images
       #ModPagespeedEnableFilters convert_jpeg_to_progressive
       #ModPagespeedEnableFilters convert_png_to_jpeg
       #ModPagespeedEnableFilters convert_jpeg_to_webp
       #ModPagespeedEnableFilters convert_to_webp_lossless
       #ModPagespeedEnableFilters insert_image_dimensions
       #ModPagespeedEnableFilters inline_images
       #ModPagespeedEnableFilters recompress_images
       #ModPagespeedEnableFilters recompress_jpeg
       #ModPagespeedEnableFilters recompress_png
       #ModPagespeedEnableFilters recompress_webp
       #ModPagespeedEnableFilters convert_gif_to_png
       #ModPagespeedEnableFilters strip_image_color_profile
       #ModPagespeedEnableFilters strip_image_meta_data
       #ModPagespeedEnableFilters resize_images
       #ModPagespeedEnableFilters resize_rendered_image_dimensions
       #ModPagespeedEnableFilters inline_preview_images
       #ModPagespeedEnableFilters resize_mobile_images
       #ModPagespeedEnableFilters remove_comments
       #ModPagespeedEnableFilters collapse_whitespace
       #ModPagespeedEnableFilters elide_attributes
       #ModPagespeedEnableFilters extend_cache
       #ModPagespeedEnableFilters extend_cache_css
       #ModPagespeedEnableFilters extend_cache_images
       #ModPagespeedEnableFilters extend_cache_scripts
       #ModPagespeedEnableFilters extend_cache_pdfs
       #ModPagespeedEnableFilters sprite_images
       #ModPagespeedEnableFilters rewrite_domains
       #ModPagespeedEnableFilters trim_urls
       #ModPagespeedEnableFilters pedantic
       #ModPagespeedEnableFilters remove_quotes
       #ModPagespeedEnableFilters add_instrumentation
       #ModPagespeedEnableFilters convert_meta_tags
       #ModPagespeedEnableFilters defer_javascript
       #ModPagespeedEnableFilters dedup_inlined_images
       #ModPagespeedEnableFilters lazyload_images
       #ModPagespeedEnableFilters insert_dns_prefetch
       #ModPagespeedEnableFilters in_place_optimize_for_browser
   </IfModule>
   <Location /pagespeed_admin>
       AuthName "PageSpeed Admin"
       AuthType Basic
       AuthUserFile /home/example/etc/htpasswd
       Require valid-user
       Satisfy any
       Allow from 127.0.0.1
   </Location>
</VirtualHost>

引用自:https://serverfault.com/questions/706701