ошибка в запросе к FastCGI серверу
Znikus M
znikus at mail.ru
Wed Jan 10 20:09:45 MSK 2007
Доброго времени суток, уважаемое сообщество.
У меня возникли проблемы с запросом к FastCGI серверу. Хотелось бы узнать, кривые ли у меня руки(так как работаю с fcgi недавно) или где то кроется ошибка в настройке.
Существует следующая схема:
1. При заходе по следующей ссылке http://dl.server.com:8085/4UO54ADIQZ6YXW3M56UMU/pestnya.mp3, dl.server.com, на 8085 порту у котрого весит nginx, должен сделать запрос на скрипт http://new.server.com/remote_serv/download-start.cgi?crypt=4UO54ADIQZ6YXW3M56UMU. (new.server.com весит на апаче)
2. Скрипт возвращает X-accel-redirect на файл соотвествующий данному коду 4UO54ADIQZ6YXW3M56UMU или не возвращает ничего соответственно.
3. После окончания довнлоада вызывается скрипт http://new.server.com/remote_serv/download-stop.cgi. Который фиксирует статистические данные.
Чтобы не убить машину перлом, я решил, что эти два скрипта (download-start.cgi, download-stop.cgi) должны быть фаст-cgi-ые. Установил модуль для апачи и перла соответственно. Тествый скрипт на new.server.com отработал замечательно. Далее пытался сделать обращение к FastCGI серверу уже через nginx, но ничего не заработало.
Вот конфиг nginx:
server {
listen 8085;
server_name dl.server.com;
root /www/dl.server.com;
charset windows-1251;
access_log logs/host.access.log main;
error_log logs/host.error.log info;
error_log logs/debug_debug debug;
location / {
rewrite ^/(.+)/.+\..+ /remote_serv/download-start.fcgi?crypt=$1 last;
}
location /remote_serv {
fastcgi_pass (new.server.com IP):80;
#fastcgi_pass new.server.com:80;
fastcgi_index /;
fastcgi_pass_header Host;
fastcgi_param Host new.server.com;
fastcgi_param SCRIPT_FILENAME /www/new.server.com/remote_serv$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param X-Real-IP $remote_addr;
}
location /data {
post_action /stop;
}
location /stop {
internal;
rewrite ^ /remote_serv/download-stop.fcgi?req_com=$request_completion&bytes_sent=$body_bytes_sent last;
}
}
при следующей конфигурации в дебаг логе появляется следующая ошибка:
................
2007/01/10 22:01:15 [debug] 14582#0: *3 connect to (new.server.com IP):80, fd:4 #4
2007/01/10 22:01:15 [debug] 14582#0: *3 kevent set event: 4: ft:-1 fl:0025
2007/01/10 22:01:15 [debug] 14582#0: *3 connected
2007/01/10 22:01:15 [debug] 14582#0: *3 http upstream connect: 0
2007/01/10 22:01:15 [debug] 14582#0: *3 http upstream send request
2007/01/10 22:01:15 [debug] 14582#0: *3 chain writer buf size: 320
2007/01/10 22:01:15 [debug] 14582#0: *3 chain writer in: 080AC9C8
2007/01/10 22:01:15 [debug] 14582#0: *3 writev: 320 of 320
2007/01/10 22:01:15 [debug] 14582#0: *3 chain writer out: 00000000
2007/01/10 22:01:15 [debug] 14582#0: *3 event timer add: 4: 60000:235430649
2007/01/10 22:01:15 [debug] 14582#0: *3 http upstream check client, write event:1, "/remote_serv/download-start.fcgi"
2007/01/10 22:01:15 [debug] 14582#0: *3 http upstream process header
2007/01/10 22:01:15 [debug] 14582#0: *3 malloc: 080CC000:4096
2007/01/10 22:01:15 [debug] 14582#0: *3 recv: eof:0, avail:266, err:0
2007/01/10 22:01:15 [debug] 14582#0: *3 recv: fd:4 266 of 4096
2007/01/10 22:01:15 [debug] 14582#0: *3 http fastcgi record byte: 3C
2007/01/10 22:01:15 [error] 14582#0: *3 upstream sent unsupported FastCGI protocol version: 60 while reading response header from up
stream, client: 62.205.123.10, server: dl.server.com, URL: "/4UO54ADIQZ6YXW3M56UMU/pestnya.mp3", upstream: "
fastcgi://(new.server.com IP):80", host: "dl.server.com:8085"
2007/01/10 22:01:15 [debug] 14582#0: *3 http next upstream, 8
2007/01/10 22:01:15 [debug] 14582#0: *3 free rr peer 1 4
2007/01/10 22:01:15 [debug] 14582#0: *3 finalize http upstream request: 502
2007/01/10 22:01:15 [debug] 14582#0: *3 finalize http fastcgi request
2007/01/10 22:01:15 [debug] 14582#0: *3 free rr peer 0 0
2007/01/10 22:01:15 [debug] 14582#0: *3 close http upstream connection: 4
2007/01/10 22:01:15 [debug] 14582#0: *3 event timer del: 4: 235430649
2007/01/10 22:01:15 [debug] 14582#0: *3 http finalize request: 502, "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU"
2007/01/10 22:01:15 [debug] 14582#0: *3 http special response: 502, "/remote_serv/download-start.fcgi"
2007/01/10 22:01:15 [debug] 14582#0: *3 http set discard body
2007/01/10 22:01:15 [debug] 14582#0: *3 HTTP/1.1 502 Bad Gateway
Server: nginx/0.5.5
Date: Wed, 10 Jan 2007 22:01:15 GMT
Content-Type: text/html
Content-Length: 532
Connection: keep-alive
2007/01/10 22:01:15 [debug] 14582#0: *3 write new buf t:1 f:0 080ACAE8, pos 080ACAE8, size: 156 file: 0, size: 0
2007/01/10 22:01:15 [debug] 14582#0: *3 http write filter: l:0 f:0 s:156
2007/01/10 22:01:15 [debug] 14582#0: *3 http output filter "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU"
2007/01/10 22:01:15 [debug] 14582#0: *3 copy filter: "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU"
2007/01/10 22:01:15 [debug] 14582#0: *3 http postpone filter "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU" 080ACC8C
2007/01/10 22:01:15 [debug] 14582#0: *3 http postpone filter out "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU"
2007/01/10 22:01:15 [debug] 14582#0: *3 write old buf t:1 f:0 080ACAE8, pos 080ACAE8, size: 156 file: 0, size: 0
2007/01/10 22:01:15 [debug] 14582#0: *3 write new buf t:0 f:0 00000000, pos 08094980, size: 120 file: 0, size: 0
2007/01/10 22:01:15 [debug] 14582#0: *3 write new buf t:0 f:0 00000000, pos 080939E0, size: 52 file: 0, size: 0
2007/01/10 22:01:15 [debug] 14582#0: *3 write new buf t:0 f:0 00000000, pos 08093A20, size: 360 file: 0, size: 0
2007/01/10 22:01:15 [debug] 14582#0: *3 http write filter: l:1 f:0 s:688
2007/01/10 22:01:15 [debug] 14582#0: *3 http write filter to send 0
2007/01/10 22:01:15 [debug] 14582#0: *3 writev: 688 of 688
2007/01/10 22:01:15 [debug] 14582#0: *3 http write filter 00000000
2007/01/10 22:01:15 [debug] 14582#0: *3 copy filter: 0 "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU"
2007/01/10 22:01:15 [debug] 14582#0: *3 http finalize request: 0, "/remote_serv/download-start.fcgi?crypt=4UO54ADIQZ6YXW3M56UMU"
2007/01/10 22:01:15 [debug] 14582#0: *3 set http keepalive handler
2007/01/10 22:01:15 [debug] 14582#0: *3 http close request
2007/01/10 22:01:15 [debug] 14582#0: *3 http log handler
2007/01/10 22:01:15 [debug] 14582#0: *3 free: 080CC000
2007/01/10 22:01:15 [debug] 14582#0: *3 free: 080AC000, unused: 584
2007/01/10 22:01:15 [debug] 14582#0: *3 event timer add: 3: 65000:235435651
2007/01/10 22:01:15 [debug] 14582#0: *3 free: 080AB000
2007/01/10 22:01:15 [debug] 14582#0: *3 free: 080AB400
2007/01/10 22:01:15 [debug] 14582#0: *3 hc free: 00000000 0
2007/01/10 22:01:15 [debug] 14582#0: *3 hc busy: 00000000 0
2007/01/10 22:01:15 [debug] 14582#0: *3 tcp_nodelay
2007/01/10 22:01:15 [debug] 14582#0: *3 http empty handler
.......................
Самое интересное, что на dl.server.com:80 весит апаче, и вот какая штука появяляется в access логе, когда я обращаюсь на http://dl.server.com:8085/4UO54ADIQZ6YXW3M56UMU/pestnya.mp3, где на 8085 порту весит nginx:
(new.server.com IP) - - [10/Jan/2007:22:08:18 +0000] "\x01\x01" 501 266 "-" "-" "-"
Подскажите пожалуйста, где я допустил ошибку в настройках?
зы: Апачи и nginx установлены на одной машине.
More information about the nginx-ru
mailing list