/var/log/life.log
Блог программиста из солнечной Бурятии

В обход nginx

Решил ускорить магазин по рекомендациям https://developers.google.com/speed/pagespeed/insights/. И столкнулся с проблемой кеширования статики. Никак апач не хотел подхватывать:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ifmodule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access plus 1 second"
</ifmodule>

Написал в тех. поддержку, подключили модуль апача, но всё равно, ничего не заработало. Но заметил, что стала глючить ajax корзина. Так как мне самому писать правила было лень, я их скопировал из интернетов, а там по умолчанию кеширование было на 1 месяц включено. Т.е. кеширование заработало, но не для картинок, стилей и прочего. Подумал может nginx режет заголовки, перенаправил всё на php скрипт, тоже не заработало. И только после этого до меня дошло, что статика отдаётся nginx и до апача дело не доходит, вот и не устанавливаются заголовки. Сделал правило для апача, чтобы про запросе ресурсов с /static запросы на реальные файлы перенаправлялись. Т.к. таких файлов не существует, то nginx передаёт обработку на апач, что он с успехом и делает.