Добрый день !
Настраиваю кеширование на сайте
сервер под Линуксом
установлен nginx-stable-1.0.11-1.el5
конфиг:
user nginx;
worker_processes 1;
worker_rlimit_nofile 1024;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$upstream_cache_status"';
access_log /var/log/nginx/access.log main;
proxy_buffering on;
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=cache:5m inactive=7d max_size=200m;
# proxy_temp_path /var/nginx/temp;
proxy_buffer_size 4k;
proxy_buffers 100 8k;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
server {
server_name test.biz.ua www.test.biz.ua;
listen xxx.xxx.xxx.xxx:8080;
charset cp1251;
index index.php;
location ~* ^.+\.(html|jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root /var/www/test/data/www/test.com.ua/test;
#########################################################
proxy_cache_valid 200 302 304 1m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 1m;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_cache cache;
########################################################
access_log /var/www/nginx-logs/test isp;
access_log /var/www/httpd-logs/test.biz.ua.access.log ;
error_page 404 = @fallback;
}
location / {
proxy_pass http://xxx.xx.xx.xx:80;
#proxy_redirect http://xxx.xx.xxx.xxx:80/ /;
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-Real-IP $remote_addr;
proxy_cache_valid 200 302 304 30m;
proxy_cache_valid 301 1h;
proxy_cache_valid any 30m;
proxy_cache_key "$host$uri$is_args$args";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_cache cache;
}
...
location @fallback {
proxy_pass http://xxx.xx.xxx.xxx:80;
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-Real-IP $remote_addr;
}
include /usr/local/ispmgr/etc/nginx.inc;
}
Когда я запускаю с таким конфигом - кеширования нет
Если же я конфиг кеширования добавляю прямо в контекст сервера (server { .... ) - то все работает
Получается что кеширование именно для location / не работает
Пробовал различные настройки, менял опции - не помогает
Помогите разобраться, в чем проблема.
Спасибо!
С уважением, Алексей