ПРОЕКТЫ 


  АРХИВ 


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: Проблема с директивами include и set


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Проблема с директивами include и set
  • From: Maxim Dounin <mdounin@xxxxxxxxxx>
  • Date: Thu, 14 Jun 2012 15:40:32 +0400
  • In-reply-to: <CANF=j445ivbJQepWJftG9m7BORajaDdLtKmLxNdTZdY_AehJWA@mail.gmail.com>
  • References: <CANF=j445ivbJQepWJftG9m7BORajaDdLtKmLxNdTZdY_AehJWA@mail.gmail.com>

Hello!

On Thu, Jun 14, 2012 at 04:23:00PM +0600, Andrey Semenoff wrote:

> Доброго дня!
> 
> Привожу примеры конфигураций:
> 
> # cat rss.name.ru.conf
> > server {
> >     listen ip:port;
> >     server_name name.ru www.name.ru;
> >     set $docroot "/www/www/name.ru";
> >     set $pool       "127.0.0.1:8080";
> >     charset windows-1251;
> >     proxy_read_timeout 600;
> >     proxy_send_timeout 600;
> >     proxy_connect_timeout 600;
> >     access_log /var/log/nginx/name.ru-access.log;
> >     error_log /var/log/nginx/name.ru-error.log warn;
> >     access_log on;
> >     rewrite  ^/yandex/rss.xml$  /rss/yandex/ last;
> >     rewrite  ^/rss/rss.xml$     /rss/all/    last;
> >     rewrite  ^(.*)$             /404.php     break;
> >     location / {
> >         include backend-httpd;
> >     }
> > }
> 
> 
> # cat backend-httpd
> >
> proxy_pass   http://127.0.0.1:8080;
> > proxy_set_header Host $host;
> > proxy_set_header X-Real-IP $remote_addr;
> > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> 
> 
> 
> 
> Если вместо "127.0.0.1:8080" подключаемого опцией include конфига добавить
> переменную "$pool", то не срабатывают правила rewrite.
> Подскажите, может я что-то упустил. Без rewrite я всегда использовал
> переменную в подключаемых файлах и всегда работало.
> Остальные параметры, в том числе и основного конфига "nginx.conf" --
> по-умолчанию
> Может подскажете другой вариант для рерайта? Мне нужна эта переменная )
> 
> # nginx -v
> > nginx version: nginx/1.0.15

Они сработают, просто на бекенд в любом случае уйдёт исходный uri, 
полученный от клиента.  Чтобы ушёл изменённый, нужно обновиться на 
1.1.12+:

    *) Bugfix: a "proxy_pass" directive without URI part always used
       original request URI if variables were used.

Ну а вообще - не надо использовать proxy_pass с переменными без 
нужды.  Это совершенно отдельный режим работы, и там могут быть 
различные нюансы.

Maxim Dounin

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


 




Copyright © Lexa Software, 1996-2009.