If rewrite

Igor Sysoev igor на sysoev.ru
Чт Май 27 16:35:11 MSD 2010


On Thu, May 27, 2010 at 08:22:01AM -0400, No1 wrote:

> Эххххх.....Приведу полный конфиг.
> До нужного момента идет описание еще нескольких серверов.
> И вот он:
> 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%

А откуда берётся нагрузка на диски ?

И что должна делать следующая конструкция:

 	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; 
 	}

?


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru