Welcome! Log In Create A New Profile

Advanced

Re: location и proxy pass

Maxim Dounin
May 16, 2013 09:12AM
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@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re: location и proxy pass

Maxim Dounin May 16, 2013 09:12AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 300
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready