Re: проблема с несколькими fastcgi_pass

Dmytro Korochkin mityacor at gmail.com
Thu Apr 2 19:36:12 MSD 2009


0.6.36

2009/4/2 Igor Sysoev <is at rambler-co.ru>:
> On Thu, Apr 02, 2009 at 05:36:38PM +0300, Dmytro Korochkin wrote:
>
>> Добрый день,
>>
>> У меня есть следующая конфигурация:
>> ========================================
>> ...
>> upstream  api_checker_server  {
>>         server 127.0.0.1:6500;
>> }
>>
>> upstream  aga_server  {
>>        ip_hash;
>>          server 10.10.10.1:6500;
>> }
>>
>> server {
>>       listen   8081;
>>
>>         location / {
>>                    rewrite   /  $uri?service_type=aga_service  break;
>>                     fastcgi_pass api_checker_server;
>>                     include /etc/nginx/fcgi_params;
>>                     fastcgi_intercept_errors on;
>>                     error_page   404 =200 @aga;
>>                     error_page   500 =200 @aga;
>>                     error_page   502 =200 @aga;
>>
>>         }
>>
>>       location @aga {
>>                   # host and port to fastcgi server
>>                   fastcgi_pass tile_server;
>>                   fastcgi_param PATH_INFO $fastcgi_script_name;
>>                   fastcgi_param REQUEST_METHOD $request_method;
>>                   fastcgi_param QUERY_STRING $query_string;
>>                   fastcgi_param CONTENT_TYPE $content_type;
>>                   fastcgi_param CONTENT_LENGTH $content_length;
>>                   fastcgi_param  SERVER_ADDR        $server_addr;
>>                   fastcgi_param  SERVER_PORT        $server_port;
>>                   fastcgi_param  SERVER_NAME        $server_name;
>>                   fastcgi_param  SERVER_PROTOCOL    $server_protocol;
>>                   fastcgi_pass_header Authorization;
>>                   fastcgi_intercept_errors off;
>>       }
>>
>> }
>> ....
>> ===================================
>> За обоими fastcgi_pass стоят pylons.
>>
>> Запрос от клиента проходит через первый fastcgi_pass и переходит ко
>> второму. На нем я вижу что запрос передается корректно, правильно
>> обрабатывается, но при ответе nginx выдает 502. При включении debug
>> вижу сдежущее:
>>
>> ===============================================
>> 2009/04/02 10:53:02 [debug] 28038#0: *1 http upstream process header
>> 2009/04/02 10:53:02 [debug] 28038#0: *1 malloc: 000000000069B760:4096
>> 2009/04/02 10:53:02 [debug] 28038#0: *1 recv: fd:9 8 of 4096
>> 2009/04/02 10:53:02 [debug] 28038#0: *1 http fastcgi record byte: 00
>> 2009/04/02 10:53:02 [error] 28038#0: *1 upstream sent unsupported
>> FastCGI protocol version: 0 while reading response header from
>> upstream, client: 192.168.1.1, server: stressweb, URL:
>> "/ID/1/256/5/17/10.png", upstream: "fastcgi://10.10.10.1", host:
>> "192.168.1.10"
>> ===============================================
>>
>> Что интересно, если исключить fastcgi_pass из первого location, то все
>> работает корректно:
>>
>> 2009/04/02 11:36:58 [debug] 26859#0: *113 http fastcgi record byte: 01
>>
>> Понимаю, проблема скорее всего не в nginx, но все же, где копать? Что
>> такого шлет nginx в первом случае, что заставляет pylons выставлять
>> record type 00?
>
> Какая версия nginx'а ? Это было исправлено в 0.7.27.
>
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
>



-- 
Mitya
Follow me on Twitter http://twitter.com/mityacor


More information about the nginx-ru mailing list