martakov_gena
08.02.2015 01:41
0
Подскажите пожалуйста как на VPS настраивается или где включается кеш браузера ?????
Евгений В.
08.02.2015 08:01
0
В случае с апачем - это можно сделать через файл .htaccess в папке сайта примерно вот так:

# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>

#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>


Само собой, модули apache mod_expires, mod_headers и mod_setenvif должны быть установлены
martakov_gena
08.02.2015 12:59
0
Спасибо за ответ, а как проверить модули apache mod_expires, mod_headers и mod_setenvif установлены или нет?????
Евгений В.
08.02.2015 13:28
0
Самый беззаботный способ - прописать правила из моего предыдущего варианта в .htaccess и посмотреть на результат. Если устроит - ну и ладушки. (:
Более правильно - создать в папке сайта файл test.php c кодом:
<?php
phpinfo();
?>

И открыв его в браузере посмотреть что есть в поле "Loaded Modules".
martakov_gena
08.02.2015 14:14
0
в .htaccess прописал но в сервисе PageSpeed все равно пишет "Используйте кеш браузера"

Вот какие модули загружаются!

core mod_log_config mod_logio mod_version prefork http_core mod_so mod_actions mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_include mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_ssl mod_status mod_suexec mod_vhost_alias mod_ispmgr
Евгений В.
08.02.2015 14:34
0
В списке нет mod_expires и mod_headers. Установить из консоли можно вот так:

a2enmod headers
a2enmod expires
service apache2 restart
martakov_gena
08.02.2015 21:17
0
Евгений спасибо вам большое все получилось буду теперь на будущее знать как это делается!!! :)
martakov_gena
10.02.2015 09:28
0
Евгений подскажите что делать при включении nginx перестает работать кеширование ????
Евгений В.
10.02.2015 09:59
1
Если nginx ставился через панель ISP, то открываем раздел "Домены" -- "WWW домены", выделяем нужный сайт и кликаем кнопку "Конфиг". В открывшемся окне выбираем вкладку "Nginx" и добавляем сразу после

server {
server_name имясайта www.имясайта;
listen ***.***.***.***;

Строки:

#  Включаем gzip-сжатие картинок, css-файлов, js-скриптов
gzip_static on;
gzip on;
gzip_comp_level  5;
gzip_types application/x-javascript application/javascript text/css image/jpeg image/png;

#  Добавляем кеширование на стороне браузера
expires 168h;
add_header Cache-Control private;

где в строке expires указывается время кеширования (168 часов - это 7 дней)

Если вручную, то всё то же самое - в файле /etc/nginx/nginx.conf

после изменений - обязательно перезапустить nginx выполнив:
service nginx restart


или если нужно чтобы nginx перечитал конфиги без перезапуска:
service nginx reload
martakov_gena
10.02.2015 10:18
0
Евгений спасибо все заработало только вопрос в .htaccess этот код оставлять или он уже не нужен?

кеширование в браузере на стороне пользователя

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>

#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>
Евгений В.
10.02.2015 16:50
1
в .htaccess этот код оставлять или он уже не нужен?© martakov_gena

Вреда от него никакого, можно оставлять как есть.
martakov_gena
11.02.2015 10:12
0
Евгений спасибо вам за помощь большое, есть еще хорошие люди на свете.
Тема закрита.