Re: rewrite+ proxy bind - Баг
Борис Долгов
boris на dolgov.name
Вт Дек 15 07:53:54 MSK 2009
Добрый день!
Грабли с if уже расписаны давно.
Запрет на использование if ($uri) - тоже давно расписан.
Посмотрел конфиг, Ваше рег. выражение почти не имеет смысла (или
скрипту принципиально не наличие /)?
Перепишите конфиг так:
server {
listen 127.0.0.44;
location / {
access_log /var/log/nginx/127.0.0.44_access_log;
proxy_bind "127.0.0.44";
proxy_pass "http://n1ck.name/2.php?$uri";
}
}
З.Ы. еще, насколько я понимаю, плохая идея - использовать хостнейм в
проксируемом адресе, если он задается строкой. Но я могу ошибаться.
15 декабря 2009 г. 6:25 пользователь Kirill <nginx-forum at nginx.us> написал:
> Уважаемый Игорь. мы обнаружили ошибку в вашем удивительном веб сервере.
> Если вместе rewrite попытаться использовать proxy_bind то он не сработает
> По дебагу видно что pc->local будет пустым (видимо где-то обнуляется)
> Вот пример конфига где proxy_bind не сработает
> ---------------------------------
> user www-data;
> events {
> use epoll;
> }
>
> http {
> include /etc/nginx/mime.types;
> default_type application/octet-stream;
>
> access_log /dev/null;
>
> resolver 8.8.8.8;
>
> server {
> listen 127.0.0.44;
> location / {
> set $dir "/";
> if ( $uri ~* ^/(.+)$ ) {
> set $dir $1;
> }
> access_log /var/log/nginx/127.0.0.44_access_log;
> proxy_bind "127.0.0.44";
> proxy_pass "http://n1ck.name/2.php?$dir";
> }
> }
> }
> -------
> если из этого примера убрать
> if ( $uri ~* ^/(.+)$ ) {
> set $dir $1;
> }
> то nginx успешно перед proxy_pass сделает bind на 44 айпи
>
> Надеемся на получение заплатки.
> Спасибо!
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,30554,30554#msg-30554
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
--
С уважением, Борис Долгов.
icq 77556665
e-mail boris at dolgov.name
Подробная информация о списке рассылки nginx-ru