Назад | Перейти на главную страницу

cache-control при использовании mod_cache и mod_pagespeed

Я использую mod_pagespeed с mod_cache.

Когда mod_pagespeed выключен, а mod_cache выключен, я вижу следующий заголовок:

cache-control: общедоступный, max-age = 7200, необходимо перепроверить

Когда mod_pagespeed включен, а mod_cache выключен, я вижу следующий заголовок в ответе:

cache-control: max-age = 0, no-cache, необходимо перепроверить

Как и ожидалось, Pagespeed переписал управление кешем.

Однако, когда включен mod_pagespeed и включен mod_cache, я вижу следующее:

cache-control: общедоступный, max-age = 7200, необходимо перепроверить

Согласно документам:

«По умолчанию PageSpeed ​​обслуживает весь HTML с Cache-Control: no-cache, max-age = 0, потому что преобразования, сделанные на странице, могут не кэшироваться в течение длительного периода времени».

Почему HTML-код обслуживается как кешируемый, когда включены mod_pagespeed и mod_cache?

Похоже, есть ошибка при запуске mod_pagespeed 1.11.33.2-0 с Apache Httpd 2.4.23 с запущенным mod_cache.

По какой-то причине mod_pagespeed не перезаписывает заголовки кеша, что делает HTML общедоступным.

Обходной путь, который я использовал, заключался в том, чтобы виртуальный хост на порту 81 работал как кэширующий сервер без скорости страницы.

<VirtualHost *:81>
ProxyPass / ajp://tomcat-ipaddress:8009/
ProxyPassReverse / https://final-hostname/
ModPagespeed off
RemoteIPHeader X-Forwarded-For
CacheEnable disk /
CacheHeader on
</VirtualHost>

На виртуальном хосте 443 или 80 вы можете проксировать хост на 81.

 <VirtualHost _default_:443>
 ProxyPass / http://localhost:81/
 ProxyPreserveHost On
 ModPagespeed on
 ProxyPassReverse / https://final-hostname/

Потому что по умолчанию mod_cache работает в режиме быстрого обработчика:

http://httpd.apache.org/docs/current/mod/mod_cache.html#cachequickhandler

что означает, что он касается ответа "последним" после того, как mod_pagespeed выполнил свои преобразования.

Использовать

CacheQuickHandler off
AddOutputFilterByType ... 

пример для заказа фильтров по мере необходимости.