Я хотел бы настроить сервер для использования обратного прокси-сервера Pagespeed с apache для нескольких сайтов, которые не могут запускать Pagespeed на своем источнике. Кажется, я смогу создать VirtualHost
для каждого сайта и использовать ModPagespeedMapProxyDomain
чтобы указать исходный сервер. Я не смог заставить это работать. Вот что у меня есть на данный момент.
http://origin.example.com/
веб-сервер для всего динамического и статического контента. Он не работает со скоростью страницы.http://www.example.com/
будет сервером скорости страницы, настроенным как обратный прокси. Здесь нет файлов.Я установил 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*
config и настройте vhost как прокси, используя ProxyPassReverse / http://origin.example.com/
, сайт загружается нормально. Однако, конечно, скорость страницы не действует.
Вы видите, что я сделал не так? Как рекомендуется настроить обратный прокси-сервер со скоростью страницы?
Вот конфигурация, которая соответствует моим требованиям.
Действительно, использование mod_proxy требуется, потому что mod_pagespeed не имеет возможности фактически прокси-запросы. Эта конфигурация VirtualHost работает для приема запросов на www.example.com в качестве прокси для контента, обслуживаемого другим сервером на origin.example.com. Раскомментируйте ModPagespeedEnableFilters
линии для включения определенных функций PageSpeed. Вы можете просмотреть страницу администратора PageSpeed по адресу www.example.com/pagespeed_admin.
<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>