Как активировать кеширование?

12
I
На сайте с 03.11.2012
Offline
54
3572

Всем здравствуйте. Помогите пожалуйста кеширование активировать, никак не могу добиться успешного результата. Смотрю по PageSpeed Insights от гугла, там по сайту выдаёт таблицу ссылок на картинки и пару скриптов, а в скобках "(не указан срок действия)"

Пытался сделать по решениям из поиска:

Ставил: memcached, pagespeed, mod_expires, mod_headers, mod_deflate;

Прописывал настройки в nginx

    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {

root /var/www/gal/data/www/;
expires 7d;}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /var/www/gal/data/www/;
expires 7d;}
location ~* ^.+\.(rss|atom|jpg|jpeg|gif|png|ico|rtf|js|css)$ {
expires 7d;
}

location / {
default_type text/html;
set $memcached_key "$server_name:$request_uri";
memcached_pass 127.0.0.1:11211;
}

location ~* ^.+.(html|jpg|jpeg|gif|css|png|js|ico|gz)$ {
expires 60d;

proxy_pass http://127.0.0.1:8080;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache static_cache;
proxy_cache_key
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; proxy_cache_valid 1d;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=static_cache:100m inactive=120m max_size=500M;
proxy_cache_min_uses 1;

Так же добавлял строки в .htaccess

FileETag MTime Size

<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

<ifModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/plain text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/rss+xml
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
AddOutputFilterByType DEFLATE image/gif
AddOutputFilterByType DEFLATE image/png
AddOutputFilterByType DEFLATE image/jpeg
AddOutputFilterByType DEFLATE image/jpg
</ifModule>
</ifModule>

<ifModule mod_headers.c>
# Все html и htm файлы будут храниться в кэше браузера один день
<FilesMatch "\.(html|htm|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# Все css, javascript и текстовые файлы будут храниться в кэше браузера одну неделю
<FilesMatch "\.(js|css|txt|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# Все флэш файлы и изображения будут храниться в кэше браузера один месяц
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
# Отключаем кеширование php и других служебных файлов
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi|gif|jpg|jpeg|png)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>

<IfModule mod_expires.c>
ExpiresActive on

ExpiresDefault "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"

# html
ExpiresByType text/html "access plus 1 month"

# XML
ExpiresByType text/xml "access plus 1 month"
ExpiresByType application/xml "access plus 1 month"

# RSS
ExpiresByType application/rss+xml "access plus 1 month"

# Favicon
ExpiresByType image/x-icon "access plus 1 month"

# Картинки
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"

# HTC файлы (например css3pie)
ExpiresByType text/x-component "access plus 1 month"

# Нестандартные шрифты сайта
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

# CSS и javascript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"

</IfModule>

<ifModule mod_headers.c>
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
</filesMatch>
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=2592000, private, must-revalidate"
</filesMatch>
</ifModule>

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl|jpg|png|gif|jpeg)$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
S
На сайте с 02.05.2014
Offline
61
#1

isuchone, у меня от вашего конфига волосы на голове дыбом встают...

I
На сайте с 03.11.2012
Offline
54
#2
Sujcnm:
isuchone, у меня от вашего конфига волосы на голове дыбом встают...

И чем же он так плох?

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Кеширование скриптов задается в коде самих скриптов, .htaccess его не перекрывает

Не стоит плодить сущности без необходимости
S
На сайте с 02.05.2014
Offline
61
#4

Его вообще не понять, как он хочет статику радовать.

То-ли nginx то-ли проксирование с бэкэнда...

Первые 3 локейшина почти повторяют друг друга (их нужно переписать в 1). И дико смотрятся на фоне 5го.

---------- Добавлено 14.05.2015 в 08:05 ----------

Короче его конфиг немного противоречит логике.

То ли ТС начитался кривых инструкций, то ли решил эксперименты ставить, не понимая, какая директива и для чего нужна.

[Удален]
#5

Гм. А ТС то сам понимает, чего хочет?

Настраивает кеши локально на сервере и хочет его проглядеть удаленно? И самое главное какие цели его интересуют.

LM
На сайте с 18.10.2009
Offline
117
#6
isuchone:
Смотрю по PageSpeed Insights от гугла, там по сайту выдаёт таблицу ссылок на картинки и пару скриптов, а в скобках "(не указан срок действия)"

Pagespeed имеет в виду кэширование на стороне клиента, proxy cache от nginx ему безразличен.

1. Убрать из конфигов всю эту чепуху. :)

2. Добавить в конфиг nginx в секцию http пару строчек:

expires 24h;

add_header Cache-Control "private";

Это задаст глобальные настройки кэширования на стороне клиента для всех сайтов.

3. Перезапустить nginx и заново протестировать на pagespeed insight.

p.s. Не помешает также проверить наличие text/javascript в директиве gzip_types, ну и добавить gzip on; в конфиг nginx. :)

I
На сайте с 03.11.2012
Offline
54
#7
LinuxMan:
Pagespeed имеет в виду кэширование на стороне клиента, proxy cache от nginx ему безразличен.

1. Убрать из конфигов всю эту чепуху. :)
2. Добавить в конфиг nginx в секцию http пару строчек:

expires 24h;
add_header Cache-Control "private";

Это задаст глобальные настройки кэширования на стороне клиента для всех сайтов.

3. Перезапустить nginx и заново протестировать на pagespeed insight.

p.s. Не помешает также проверить наличие text/javascript в директиве gzip_types, ну и добавить gzip on; в конфиг nginx. :)

Такие строчки в конфиге nginx уже присутствуют. Не помогает

text/javascript в дерективе gzip_types так же есть, gzip работает

I
На сайте с 03.11.2012
Offline
54
#8

Ап, кто возьмется решить проблему за деньги?

lealhost
На сайте с 07.06.2014
Offline
136
#9

Лучше дайте URL сайта и полный конфиг nginx :)

I
На сайте с 03.11.2012
Offline
54
#10

user www-data;

worker_processes 4;
pid /var/run/nginx.pid;

events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 10m;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=all:32m;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";
gzip_static on;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_proxied any;
gzip_vary on;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

##
# nginx-naxsi config
##
# Uncomment it if you installed nginx-naxsi
##

#include /etc/nginx/naxsi_core.rules;

##
# nginx-passenger config
##
# Uncomment it if you installed nginx-passenger
##

#passenger_root /usr;
#passenger_ruby /usr/bin/ruby;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
include /etc/nginx/vhosts/*/*;

server {
listen 80;
server_name localhost;
expires 24h;
add_header Cache-Control private;
disable_symlinks if_not_owner;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
include /etc/nginx/vhosts-includes/*.conf;

location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /var/www/gal/data/www/url;
expires 7d;}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /var/www/gal/data/www/url;
expires 7d;}
location ~* ^.+\.(rss|atom|jpg|jpeg|gif|png|ico|rtf|js|css)$ {
expires 7d;
}

location / {
default_type text/html;
set $memcached_key "$server_name:$request_uri";
memcached_pass 127.0.0.1:11211;
}


location @fallback {
error_log /dev/null crit;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://127.0.0.1:8080 /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Secret EVxO/i+HONShDmRW;
access_log off ;
}
}
}


#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}

URL в лс

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий