Вернуться назад

Настройка и проверка работы 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
Дата: 25 января 2019 г. в 00:18:15

Автор: igel