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

Dmytro Korochkin mityacor at gmail.com
Thu Apr 2 18:36:38 MSD 2009


Добрый день,

У меня есть следующая конфигурация:
========================================
...
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?

Заранее спасибо
-- 
Митя


More information about the nginx-ru mailing list