ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА

https://0225.ru











     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: If rewrite



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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.