Re[2]: Помогите с rewrite

Anton Nagorniy anton20vlad at mail.ru
Thu Jan 22 19:04:33 MSK 2009



-----Original Message-----
From: Igor Sysoev <is at rambler-co.ru>
To: nginx-ru at sysoev.ru
Date: Thu, 22 Jan 2009 18:08:30 +0300
Subject: Re: Помогите с rewrite

> On Thu, Jan 22, 2009 at 06:01:14PM +0300, Anton Nagorniy wrote:
> 
> > 
> > 
> > -----Original Message-----
> > From: Igor Sysoev <is at rambler-co.ru>
> > To: nginx-ru at sysoev.ru
> > Date: Thu, 22 Jan 2009 17:48:59 +0300
> > Subject: Re: Помогите с rewrite
> > 
> > > On Thu, Jan 22, 2009 at 05:45:02PM +0300, Anton Nagorniy wrote:
> > > 
> > > > 
> > > > 
> > > > -----Original Message-----
> > > > From: Igor Sysoev <is at rambler-co.ru>
> > > > To: nginx-ru at sysoev.ru
> > > > Date: Thu, 22 Jan 2009 17:23:54 +0300
> > > > Subject: Re: Помогите с rewrite
> > > > 
> > > > > On Thu, Jan 22, 2009 at 03:51:26PM +0300, Anton Nagorniy wrote:
> > > > > 
> > > > > > rewrite  ^/services/([0-9a-zA-Z_-]*)\.py(.*)?$  $1.py?service=$1$2? last;
> > > > > > 
> > > > > > Объясните пожалуйста, почему результатом правила есть всегда $1.py, а service=$1$2 почему-то отсутствует в результируещем url?
> > > > > 
> > > > > - rewrite  ^/services/([0-9a-zA-Z_-]*)\.py(.*)?$  $1.py?service=$1$2? last;
> > > > > + rewrite  ^/services(/[0-9a-zA-Z_-]*)\.py(.*)?$  $1.py?service=$1$2? last;
> > > > > 
> > > > > > 2009/01/20 14:59:40 [error] 50993#0: *1 open() "/usr/local/nginx/htmllogin.py" failed (2: No such file or directory), client: 192.168.50.1, server: localhost, request: "GET /services/login.py HTTP/1.1", host: "192.168.50.5"
> > > > > > 
> > > > > > 
> > > > > > /usr/local/nginx/htmllogin.py - это хорошо, он почему здесь нет ?service=login
> > > > > 
> > > > > Потому что из-за неправильного rewrite этот запрос обрабатывается
> > > > > как статический файл.
> > > > > 
> > > > > 
> > > > > -- 
> > > > > Игорь Сысоев
> > > > > http://sysoev.ru
> > > > > 
> > > > + rewrite  ^/services(/[0-9a-zA-Z_-]*)\.py(.*)?$  $1.py?service=$1$2? last;
> > > > 
> > > > Этот rewrite тоже неверный? Результат тот же.
> > > 
> > > В смысле - open() "/usr/local/nginx/html/login.py" failed (2: No such
> > > file or directory) ? А обработчик .py есть ?
> > 
> > Есть. Я специально закоментировал proxy pass потому, что в таком случае невидно ошибки в error.log. Мне очень важно чтобы передались параметры с помощью GET, судя по логам они не передаются. Понятия не имею почему.
> 
> А как выглядит конфиг ?
> 
> То, что уходит на бэкенд можно увидеть в error_log'е при 502 ошибке -
> нужно опуститт бэкенд, сделать запрос и посмотреть на upstream в error_log.
> 
> 
> -- 
> Игорь Сысоев
> http://sysoev.ru
> 


В бекенд всё проксируется. Я проверил. Но в get параметрах ничего.
Вот такое правило для прокси
        location ~ \.(py) {
                proxy_pass   http://127.0.0.1:1026;
        }





More information about the nginx-ru mailing list