If rewrite
No1
nginx-forum на nginx.us
Чт Май 27 16:22:01 MSD 2010
Эххххх.....Приведу полный конфиг.
До нужного момента идет описание еще нескольких серверов.
И вот он:
server {
listen 80;
server_name img.mydomain;
access_log /var/log/nginx/img.access.log main;
location / {
root /var/www/img;
index index.html index.htm;
if (-f $request_filename) {
break;
}
if ($http_referer ~ refer.ru) {
rewrite ^/images/books[\d]+/[\d]+/(small.jpg|big.jpg) /images/img1/0/img_$1 last;
}
rewrite ^/images/imgb[\d]+/[\d]+/(small.jpg|big.jpg) /index.php;
}
location /images/mail/ {
alias /var/www/img/images/;
if (-f $request_filename) {
break;
}
if ($http_referer ~ refer) {
rewrite ^/images/mail/img[\d]+/[\d]+/(small.jpg|big.jpg) /images/img1/0/img_$1 last;
}
rewrite ^/images/img[\d]+/[\d]+/(small.jpg|big.jpg) /index.php;
error_page 404 = /noimg;
}
location /images/ {
root /var/www/img;
if (-f $request_filename) {
break;
}
if ($http_referer ~ refer) {
rewrite ^/images/books[\d]+/[\d]+/(small.jpg|big.jpg) /images/img1/0/img_$1 last;
}
rewrite ^/images/img[\d]+/[\d]+/(small.jpg|big.jpg) /index.php;
error_page 404 = /noimg;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/img$fastcgi_script_name;
include fastcgi_params;
}
#error_page 404 /404.html;
error_page 404 /error404.php;
#location = /404.html {
# root /var/www/errorpages;
#}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;
}
# XXX Statistics
location = /ngst {
stub_status on;
access_log off;
allow 127.0.0.1 ;
allow mydomain ;
deny all;
}
location ~ ^/rrd/ {
root /var/www/_stats;
allow mydomain;
deny all;
}
#location /images/avatars/ {
# root /var/www/img;
# error_page 404 = /noimg;
#}
location = /noimg {
proxy_pass http://back-www.myback.ru;
}
location ~* \.(css|js)$ { #При таком расположений nginx запускается,иначе нет,но скрипты и стили не кешируются.
proxy_pass http://127.0.0.1; #Прописывая в локейшн \images\css\ (где непосредственно лежат сами стили и скрипты,все в порядке и работает.Так же и с локейшн описанным ниже.)
proxy_set_header Host mydomain;
proxy_cache ONE;
proxy_cache_valid 1d;
proxy_temp_path /var/spool/nginx/temp;
expires 1d;
add_header Last-Modified: $date_gmt;
add_header Cache-Control: public;
}
location ~* \.+small+(jpeg|png|gif)$ {
proxy_pass http://127.0.0.1;
proxy_set_header Host mydomain;
proxy_cache ONE;
proxy_cache_valid 1d;
proxy_temp_path /var/spool/nginx/temp;
expires 1d;
add_header Last-Modified: $date_gmt;
add_header Cache-Control: public;
}
}
После тоже идут описания нескольких серверов.
В документаций написано что файлы кэша складываются в моем случае /var/spool/nginx/cache и /temp.Их там нет и ничего не создается.Кеширование делаю для того чтобы снизить нагрузку на винты,прыгает очень часто до 99-100%,средняя нагрузка около 75-80%
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,89982,90903#msg-90903
Подробная информация о списке рассылки nginx-ru