Настройка и проверка работы mod-expires
Имеем вот такие настройки в .htaccess:
62
<IfModule mod_expires.c>
63
# Enable expirations.
64
ExpiresActive On
65
66
# Cache all files for 2 weeks after access (A).
67
ExpiresDefault A1209600
68
69
# Do not cache dynamically generated pages.
70
ExpiresByType text/html A1
71
</IfModule>
То есть все файлы с типом text/html должны выдаваться с заголовками,
разрешающими их кэширование, это можно проверять командой (обязательно,
чтобы 1.html был статикой, иначе никаких директив мы не поулчим! Апач не
дописывает директивы к выдаче скриптов):
wget
http://domain.ru:80/1.html --server-response -O/dev/null
Но выдаются только следующие заголовки на бэкэнде:
HTTP/1.1
200 OK
Date:
Tue, 13 Apr 2010 07:21:32 GMT
Server:
Apache
Last-Modified:
Tue, 13 Apr 2010 07:19:25 GMT
ETag:
"5258883-5-4841914cef940"
Accept-Ranges:
bytes
Content-Length:
5
Vary:
Accept-Encoding
Keep-Alive:
timeout=15, max=100
Connection:
Keep-Alive
Content-Type:
text/html
А на фронтэнде nginx:
HTTP/1.1
200 OK
Server:
nginx
Date:
Tue, 13 Apr 2010 07:21:34 GMT
Content-Type:
text/html
Connection:
keep-alive
Last-Modified:
Tue, 13 Apr 2010 07:19:25 GMT
ETag:
"5258883-5-4841914cef940"
Accept-Ranges:
bytes
Content-Length:
5
Vary:
Accept-Encoding
Как видите, ничего близкого к кэшированию тут нету.
Чтобы кэширование все же заработало, необходимо включить соответствующий модуль:
a2enmod
expires
/etc/init.d/apache
restart
После этого получаем от бэкэнда:
HTTP/1.1
200 OK
Date:
Tue, 13 Apr 2010 07:24:53 GMT
Server:
Apache
Last-Modified:
Tue, 13 Apr 2010 07:19:25 GMT
ETag:
"5258883-5-4841914cef940"
Accept-Ranges:
bytes
Content-Length:
5
Cache-Control:
max-age=1
Expires:
Tue, 13 Apr 2010 07:24:54 GMT
Vary:
Accept-Encoding
Keep-Alive:
timeout=15, max=100
Connection:
Keep-Alive
Content-Type:
text/html
И фронтэнда:
HTTP/1.1
200 OK
Server:
nginx
Date:
Tue, 13 Apr 2010 07:25:20 GMT
Content-Type:
text/html
Connection:
keep-alive
Last-Modified:
Tue, 13 Apr 2010 07:19:25 GMT
ETag:
"5258883-5-4841914cef940"
Accept-Ranges:
bytes
Content-Length:
5
Cache-Control:
max-age=1
Expires:
Tue, 13 Apr 2010 07:25:21 GMT
Vary:
Accept-Encoding
Как видите, появились новые директивы:
Cache-Control:
max-age=1
Expires:
Tue, 13 Apr 2010 07:25:21 GMT
Автор: igel