Кэширование в nginx
ower
nginx-forum на nginx.us
Вт Май 18 10:44:42 MSD 2010
Здравствуйте.
Попробовал сделать вот такой конфиг для nginx на своем VPS, но при запуске на нем выскакивает ошибка 504 nginx. В логе nginx ошибки такого рода:
2010/05/18 09:41:12 [error] 15597#0: *39 could not find named location "@nocached", client: 94.246.127.88, server: example.com, request: "GET / HTTP/1.1", host: "example.com"
2010/05/18 09:41:22 [error] 15597#0: *49 could not find named location "@nocached", client: 195.93.155.18, server: example.com, request: "GET / HTTP/1.1", host: "example.com"
и так далее.... На все папки /var/cache/nginx/ и внутри нее права nginx выставлены - 700. Подскажите, что не так, не могу понять...
http {
proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=one:16m inactive=7d max_size=1024m;
proxy_temp_path /var/cache/nginx/temp;
server {
set $cached 0;
listen backend:80;
server_name example.com www.example.com;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
proxy_temp_path /var/cache/nginx/example.com;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://backend:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://backend:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
#здесь мы фильтруем наших залогиненых пользователей
if ($cookie_dle_user_id) { return 412; }
if ($cookie_dle_password) { return 412; }
if ($request_method = POST ) {
return 412;
}
error_page 412 = @nocached;
proxy_cache one;
proxy_cache_key "$request_method|$is_args|$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_valid 200 302 304 5m;
proxy_cache_valid 301 1h;
proxy_cache_valid 503 4s;
proxy_cache_valid any 1m;
proxy_cache_use_stale http_502 http_503 http_504;
}
location ~ (sumiks.php|admin.php|index.php?action=logout) {
proxy_pass http://backend:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/example/data/www/example.com;
expires 1y;
access_log /var/www/httpd-logs/example.com.access.log;
error_page 404 = @fallback;
valid_referers none blocked server_names
~\.google\.
~\.yandex\.
~\.images.yandex\.
~\.yahoo\.
~\.marketgid\.
~\.msn\.
~\.altavista\.
~\.rambler\.
~\.mail\.
~\.gogo\.
~\.aport\.
~\.bing\.
~\.poisk\.
~\.conduit\.
~\.nigma\.
~\.icq\.
~\.qip\.
~\.liveinternet\.
~\.tut\.
~\.rss2email.ru\.
~\.rsslenta.ru\. ;
if ($invalid_referer) {
return 403;
}
}
location @fallback {
proxy_pass http://backend:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,87654,87654#msg-87654
Подробная информация о списке рассылки nginx-ru