proxy_cache
tirael
nginx-forum на forum.nginx.org
Ср Июн 29 10:05:28 UTC 2016
Доброго дня!
Имеется nginx(frontend) apache (backend)
делаю кэширование на nginx для ускорения работы сайта ибо сейчас ttfb от 2
сек и выше.
вот мои конфиги
nginx.conf
user www-data;
worker_processes auto;
timer_resolution 100ms;
worker_priority -5;
error_log /var/log/nginx/error.log;
#error_log off;
pid /var/run/nginx.pid;
events {
# accept_mutex on;
# accept_mutex_delay 500ms;
# worker_aio_requests 32
use epoll;
worker_connections 2048;
multi_accept on;
}
http {
# Подключение mimetypes
include /etc/nginx/mime.types;
# Подключение прокси
include /etc/nginx/proxy_params;
# Не показывать информацию о сервере
server_tokens off;
# Логи доступа
access_log /var/log/nginx/access.log;
#access_log off;
# Протокол отдачи статики
sendfile on;
tcp_nodelay on;
tcp_nopush on;
# Подключение других настроек
include /etc/nginx/conf.d/*.conf;
# Подключение виртуальных хостов
include /etc/nginx/sites-enabled/multiblender.ru;
}
proxy_param.conf
# Базовые настройки
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Защита от killapache.pl
proxy_set_header Range "";
proxy_set_header Request-Range "";
# Размер буферов
proxy_buffers 32 8k; # 256K * 4096 = ~1G
proxy_buffering on;
proxy_ignore_client_abort off;
proxy_intercept_errors off;
proxy_read_timeout 320s;
core_module.conf
chunked_transfer_encoding on;
client_body_buffer_size 32k; # стандартный буфер для обычных
POST
client_max_body_size 64m; # максимальный буфер для больших
файлов не больше чем у PHP
client_body_in_file_only off;
#client_body_in_single_buffer off;
client_header_buffer_size 1k; # Маленький входной буфер
large_client_header_buffers 4 8k; # Максимальный буфер равен входному
буферу apache и PHP
#client_header_timeout 60s;
client_body_timeout 10;
client_header_timeout 10;
default_type application/octet-stream;
#directio off;
#disable_symlinks off;
#if_modified_since exact;
ignore_invalid_headers on;
underscores_in_headers on;
keepalive_disable msie6;
keepalive_requests 100;
keepalive_timeout 30;
# таймаут при передаче клиентам
send_timeout 2;
reset_timedout_connection on;
# Ограничение скорости!!!
#limit_rate 0;
#limit_rate_after 0;
# Интересное кеширование информации о мелких файлах
open_file_cache max=4096 inactive=20s;
open_file_cache_valid 40s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
gzip_module.conf
gzip on;
gzip_buffers 32 8k;
gzip_comp_level 1;
gzip_disable msie6;
gzip_min_length 20;
gzip_http_version 1.1;
gzip_proxied off;
gzip_types text/plain application/xml application/x-javascript
application/javascript text/javascript text/xml ext/javascript text/css
text/json application/vnd.ms-excel application/vnd.ms-powerpoint
application/msword;
gzip_vary off;
site_enable
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=cache:10m
inactive=60m;
proxy_set_header Accept-Encoding "";
#proxy_temp_path /var/nginx/proxy 1 2;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_ignore_headers Set-Cookie;
server {
listen 80;
server_name multiblender.ru www.multiblender.ru;
log_format cache_status '[$time_local] "$request" $upstream_cache_status';
access_log /var/log/cache.log cache_status;
access_log /var/log/nginx-access.log;
error_log /var/log/nginx-error.log;
root /var/www/html/;
index index.php index.html index.htm;
tcp_nodelay on;
tcp_nopush on;
location / {
sub_filter_once off;
sub_filter '="aaa' '="bbb';
proxy_cache cache;
proxy_ignore_headers Expires;
proxy_ignore_headers Cache-Control;
proxy_cache_valid any 30m;
proxy_cache_valid 404 502 503 1m;
proxy_cache_key $host$uri$request_uri$is_args$args;
proxy_cache_bypass $cookie_pass_hash;
proxy_no_cache $cookie_pass_hash;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://127.0.0.1:8080/;
}
location ~*
^.+\.(html|xhtml|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|js|wmv|avi|cur|swf|mp3|wma|htc|cur|7z)$
{
root /var/www/html;
expires 3d;
add_header Cache-Control "public";
}
open_file_cache max=10000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# Deny all attempts to access hidden files such as .htaccess, .htpasswd,
.DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# location ~ \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|mov|avi|mp4|mpeg4) {
# root /var/www/html;
# }
location ~ /.ht {
deny all;
}
}
На данный момент файлики кэша создаются в директории.
В логах такая фигня
[29/Jun/2016:10:03:55 +0000] "GET /mojka-kuppersberg-modena-15b-sand
HTTP/1.1" MISS
[29/Jun/2016:10:03:57 +0000] "GET
/vstraivaemaja-bytovaja-tehnika/duhovye-shkafy/proizvoditel:beko,bosch,electrolux,indesit,zanussi,neff,hotpoint-ariston,samsung/sklad:in/tsvet:seryj,chernyj/duhovka:elektricheskaja-nezavisimaja,gazovaja-nezavisimaja/
HTTP/1.1" MISS
[29/Jun/2016:10:04:09 +0000] "GET /varochnaya-poverhnost-gorenje-g6n4zbb
HTTP/1.1" MISS
[29/Jun/2016:10:04:27 +0000] "GET /varochnaya-panel-neff-t43d49n2 HTTP/1.1"
MISS
[29/Jun/2016:09:50:42 +0000] "GET
/image/cache/data/mx/zadacha/p26103_346693_stiralnaya_mashina_samsung_wf8590nmw9-250x250.jpg
HTTP/1.1" -
[29/Jun/2016:09:50:42 +0000] "GET
/image/cache/data/mx/zadacha/p52000_4324919_stiralnaya_mashina_samsung_wf60f1r0f2w-250x250.jpg
HTTP/1.1" -
[29/Jun/2016:09:50:42 +0000] "GET
/image/cache/data/mx/zadacha/p52116_4355360_morozilnik_kraft_xf_300a-250x250.jpg
HTTP/1.1" -
[29/Jun/2016:09:50:42 +0000] "GET
/catalog/view/theme/lexus_happycook/stylesheet/sliderlayer/assets/btn-slide.png
HTTP/1.1" -
Тоесть ничего не кэшируется, помогите кто шарит хорошо.
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,267948,267948#msg-267948
Подробная информация о списке рассылки nginx-ru