Re: rewrite+ proxy bind - Баг

Sergey Shepelev temotor на gmail.com
Вт Дек 15 10:43:10 MSK 2009


2009/12/15 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 айпи
>
> Надеемся на получение заплатки.
> Спасибо!
>

Действительно, у вас в конфиге баг (if).

Вот заплатка:
--- f1	2009-12-15 10:36:11.543424434 +0300
+++ f2	2009-12-15 10:41:41.139866364 +0300
@@ -14,13 +14,9 @@
    server {
    listen    127.0.0.44;
    location / {
-       set  "/";
-       if (  ~* ^/(.+)$ ) {
-       set  ;
-       }
       access_log  /var/log/nginx/127.0.0.44_access_log;
       proxy_bind "127.0.0.44";
-      proxy_pass   "http://n1ck.name/2.php?";
+      proxy_pass   "http://n1ck.name/2.php?$uri";
    }
    }
 }

> 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
>


Подробная информация о списке рассылки nginx-ru