ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.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: location и proxy pass



Hello!

On Thu, May 16, 2013 at 07:12:57AM -0400, AMax wrote:

> Есть такой server:
> 
> server {
>     listen 80;
>     server_name example.com www.example.com;
> 
>     access_log /var/log/nginx/example.com/access.log main;
>     error_log /var/log/nginx/example.com/error.log;
>     include /etc/nginx/cloudflare_params;
> 
>     location /w/images/ {
>         root /var/www/data/example.com;
>         # log only hotlinking
>         if ($http_referer ~* "^http://(www\.)?example\.com/.*$" ) {
>             access_log off;
>         }
>     }
> 
>     location /w/skins/ {
>         root /var/www/data/example.com;
>         access_log off;
>     }
> 
>     location ~ ^/w/extensions/.*?\.(sql|php)$ { return 403; }
> 
> #    location ^~ /w/load.php {
> #        proxy_pass  http://127.0.0.1:81/;
> #        include     /etc/nginx/proxy_params;
> #        access_log off;
> #    }
> 
>     location / {
>         proxy_pass  http://127.0.0.1:81/;
>         include     /etc/nginx/proxy_params;
>     }
> }
> 
> Если раскомментировать location ^~ /w/load.php, он перестает работать,
> точнее возвращает некорректный ответ от сервера, хотя, вроде бы, должен
> обрабатываться тем же backend с теми же параметрами, только не писать в
> журнал.

Поскольку используется proxy_pass с URI - указанный URI заменяет 
совпавшую с location'ом часть URI запроса.  Для location / - 
замена "/" на "/" ни на что не влияет, а вот для location 
/w/load.php - замена "/w/load.php" на "/" логично приводит к тому, 
что оно перестаёт работать.

Проще всего убрать "/" в конце proxy_pass:

    location = /w/load.php {
        proxy_pass http://127.0.0.1:81;
        ...
    }

Подробнее см. http://nginx.org/r/proxy_pass/ru.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.