Upstream closed connection...

Gen Gennix lists at
Wed Sep 17 20:09:31 MSD 2008


I'm using Nginx+PHP+MySQL on CentOS since two weeks and it works great
(with 20 000 visitors/day).

But every minutes, I received several errors like this one :

2008/09/16 12:39:30 [error] 25031#0: *5786740 upstream prematurely
closed connection while reading response header from upstream, client:, server: localhost, request: "GET /search?query=test&pag
e_number=8 HTTP/1.1", upstream: "fastcgi://", host:
"www.****.com", referrer:

My only clues are:

1- "fastcgi_read_timeout 180;" doesn't solve my problem.

2- The error occured before executing the first line of my php script.
So, it's not a MySQL problem, nor a php script problem.

3- There was a lot of "TIME_WAIT" connections on the fast_cgi program
(1000 time_wait for 1500 connections). I activated the
tcp_time_wait_recycler, the time_wait connections decreased but the
problem is still there.

4- I tested 5 php-cgi and 20 php-cgi : the error rating is the same.

5- More traffic increase the number of errors.

Do you have an advice? A way to debug this problem?
Any help?

Thanks a lot!


I use:
  . Nginx      0.6.32
  . PHP        5.1.6
  . MySQL      5.0.45
  . spawn-fcgi 1.4.19

My nginx.conf
user              apache apache;
worker_processes  2;

   worker_connections  1024;

   include            mime.types;
   default_type       application/octet-stream;

   log_format         main             '$remote_addr [$time_local]
"$request" $status $body_bytes_sent "$http_referer"';
   access_log         logs/access.log  main;

   sendfile           on;
   keepalive_timeout  65;

   gzip               on;
   gzip_types         text/plain text/html text/css
application/x-javascript text/xml application/xml application/xml+rss

         listen       80;
         server_name  localhost;

         root         /home/webmaster/www;

         location /
               index  index.php;
               rewrite ^/?$                         /index.php
               rewrite ^/?index\.php$               /index.php
               rewrite ^/?page_number=([0-9]*)$
/index.php?page_number=$1     last;
               rewrite ^/?(.*)$                     /search.php?query=$1

         # PHP configuration
         location ~ .*\.php$
               fastcgi_index  index.php;
               fastcgi_param  SCRIPT_FILENAME
               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  SCRIPT_NAME        $fastcgi_script_name;
               fastcgi_param  REQUEST_URI        $request_uri;
               fastcgi_param  DOCUMENT_URI       $document_uri;
               fastcgi_param  DOCUMENT_ROOT      $document_root;
               fastcgi_param  SERVER_PROTOCOL    $server_protocol;
               fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
               fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
               fastcgi_param  REMOTE_ADDR        $remote_addr;
               fastcgi_param  REMOTE_PORT        $remote_port;
               fastcgi_param  SERVER_ADDR        $server_addr;
               fastcgi_param  SERVER_PORT        $server_port;
               fastcgi_param  SERVER_NAME        $server_name;
               fastcgi_param  REDIRECT_STATUS    200;

         # Static files configuration
         location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$
               access_log        off;
               expires           30d;
Posted via

More information about the nginx mailing list