ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Upstream split a header in FastCGI



On Fri, 17 Feb 2006 19:47:51 +0300 (MSK)
Igor Sysoev <is-G97k7egY2jIKNkxEY4oc4w@xxxxxxxxxxxxxxxx> wrote:

> > 2006/02/17 18:57:51 [alert] 15689#0: *46 upstream split a header in FastCGI 
> > records while reading response header from upstream, client: 127.0.0.1, 
> > server: localhost, URL: "/trac/", upstream: "fastcgi://127.0.0.1:1027"
...
> Это сообщение означает, что fastcgi сервер послал запись stderr
> в то время, пока ещё не до конца выведен заголовок ответа (он выводится
> в записях stdout). Хотя, судя по логу, записей (type = 7) stderr нет.
> 
> Такая обработка stderr во время чтения заголовка - это багофича nginx'а.
> Однако в данном случае, похоже, stderr нет.
> 
> Можно сделать следующее:
> 
> 1) в файле src/http/modules/ngx_http_fastcgi_module.c найти две строки
>     "upstream split a header in FastCGI records" и поменять в них
>     split на split1 и split2.
> 
> 2) запустить nginx с отладочныи логом (желательно поставить
>     worker_processes 1), сделать запрос и лог прислать мне.

  Здравствуйте, Игорь!

  Прилагаю error.log, полученный от запроса телнетом:

$ telnet localhost 8084
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /trac/ HTTP/1.0

HTTP/1.1 502 Bad Gateway
Server: nginx/0.3.28
Date: Sat, 18 Feb 2006 14:31:48 GMT
Content-Type: text/html
Content-Length: 173
Connection: close

<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/0.3.28</center>
</body>
</html>
Connection closed by foreign host.


  Возможно, Вам будет интересно, что выдаёт требуемый скрипт
 при обращении к lighttpd-1.4.10:

$ telnet localhost 8085
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /trac/test/ HTTP/1.0

HTTP/1.0 200 OK
Connection: close
Cache-control: must-revalidate
Expires: Fri, 01 Jan 1999 00:00:00 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 201
Date: Fri, 17 Feb 2006 23:59:06 GMT
Server: lighttpd (ALTLinux)

<html>
<head><title>Available Projects</title></head>
<body><h1>Available Projects</h1><ul><li>
   <a href="/trac/test/test" title="My example project">
    Test project</a>
  </li></ul></body>
</html>


  А вот это он пишет при запуске в консоли:

$ /usr/share/trac/cgi-bin/trac.fcgi
Status: 200
Cache-control: must-revalidate
Expires: Fri, 01 Jan 1999 00:00:00 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 196

<html>
<head><title>Available Projects</title></head>
<body><h1>Available Projects</h1><ul><li>
   <a href="/trac/test" title="My example project">
    Test project</a>
  </li></ul></body>
</html>Content-Type: text/plain

Oops...

Trac detected an internal error:

0

Traceback (most recent call last):
  File "/usr/share/trac/cgi-bin/trac.fcgi", line 20, in ?
    fcgi_frontend.run()
  File "/usr/lib/python2.3/site-packages/trac/web/fcgi_frontend.py", line 28, 
in run
    _fcgi.Server(_handler).run()
  File "/usr/lib/python2.3/site-packages/trac/web/_fcgi.py", line 1049, in run
    sock = self._setupSocket()
  File "/usr/lib/python2.3/site-packages/trac/web/_fcgi.py", line 994, in 
_setupSocket
    req.run()
  File "/usr/lib/python2.3/site-packages/trac/web/_fcgi.py", line 580, in run
    self._end(appStatus, protocolStatus)
  File "/usr/lib/python2.3/site-packages/trac/web/_fcgi.py", line 606, in _end
    sys.exit(appStatus)
SystemExit: 0



Attachment: error.log.gz
Description: GNU Zip compressed data



 




Copyright © Lexa Software, 1996-2009.