Иногда когда страница сайта весит много – приходит на помощь кеширование + сжатие контента перед выдачей его клиенту. Штука весьма полезная и нужная но нужно учитывать что все операции грузят процессор ( когда идет сжатие контента ).
Я использую в своих настройках в apache_2.2 mod_deflate и mod_expire. В Centos Linux эти модули есть по умолчанию в установленном apache и они подгружаются автоматом, проверить наличие этих модулей и загружены ли они можно командой:
1 |
apachectl -t -D DUMP_MODULES |grep -E "cache|deflate" |
в выводе должны получить:
После проверки что модули есть – нужно создать конфиги и прописать в них настройки:
для сжатия контента (mod_deflate):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@testograf ~]# cat /etc/httpd/conf.d/deflate.conf <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript DeflateCompressionLevel 9 BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html BrowserMatch \bOpera !no-gzip </IfModule> |
и для кеширования (mod_expires):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
[root@testograf ~]# cat /etc/httpd/conf.d/expires.conf <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 60 days" ExpiresByType image/png "access plus 60 days" ExpiresByType image/gif "access plus 60 days" ExpiresByType image/jpeg "access plus 60 days" ExpiresByType text/css "access plus 1 days" ExpiresByType image/x-icon "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType audio/x-wav "access plus 1 month" ExpiresByType audio/mpeg "access plus 1 month" ExpiresByType video/mpeg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/quicktime "access plus 1 month" ExpiresByType video/x-ms-wmv "access plus 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType text/javascript "access plus 1 week" ExpiresByType application/x-javascript "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" </IfModule> |
После этого перегружаем apache:
1 |
/etc/init.d/httpd restart |
Включение сжатия контена + выставление времени жизни кеша позволяет существенно ускорить загрузку сайта даже на клиентах с меленным интернетом. В моем примере выше скорость загрузки выросла в 2 раза.