Proxy - 2nd apache process started

mates007 at centrum.cz mates007 at centrum.cz
Thu Apr 2 00:07:52 MSD 2009


Hello nginx users!

I an running nginx/0.6.32 on Debian Lenny as a proxy server for Apache.

I have a script sleep.php which does nothing but sleeps for 120 seconds and then displays phpinfo.

When I call sleep.php bypassing nginx proxy, I can see output after 120 seconds. This is expected.

When I call sleep.php througt proxy, weird things happens:
Apache process is in status Sending Reply for 90 seconds.
In 90th second, another apache process is started, executing sleep.php
In 120th second, 1st process finishes
In 150th second 504 Gateway Time-out is sent to browser
In 210th second, 2nd process finishes

Is there any explanation for this weird behaviour?
Why 2nd process is started?

Thanks,
Martin



My nginx configuration:

nginx.conf:
----------

user  www-data www-data;
worker_processes  1;

events {
        worker_connections  1024;
        use epoll;
}

http {
        root  /var/www/nginx-default/;
        index index.html;
        error_page   502 503 504  /50x.html;
        error_log /var/log/nginx/error_log;

        server_names_hash_max_size 2048;
        #server_names_hash_bucket_size 128;

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

        sendfile        on;
        tcp_nopush      on;
        tcp_nodelay     on;

        keepalive_timeout 10;

        log_format main
        '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $bytes_sent '
        '"$http_referer" "$http_user_agent" '
        '"$gzip_ratio"';

        #gzipping all text content
        gzip on;
        gzip_min_length 1100;
        gzip_buffers    4 32k;
        gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
        ignore_invalid_headers  on;

        client_header_timeout       3m;
        client_body_timeout         3m;
        send_timeout                3m;
        connection_pool_size        256;
        client_header_buffer_size   4k;
        large_client_header_buffers 4 32k;
        request_pool_size           4k;
        output_buffers              4 32k;
        postpone_output             1460;


        server {
                listen 11.22.33.44:80;

                location /nginx_status {
                        stub_status on;
                        allow 99.88.77.66;
                        deny all;
                }

                location /server-status {
                        proxy_pass http://11.22.33.44:8080/server-status;
                }

                #default proxy settings for each virtual host
                include /etc/nginx/proxy.conf;

        }

        #add fine-tuned virtual hosts
        include /etc/nginx/sites-enabled/*.conf; #see below
}


proxy.conf:
-----------
                location / {
                  client_max_body_size       10m;
                  client_body_buffer_size    128k;

                  proxy_send_timeout         90;
                  proxy_read_timeout         90;

                  proxy_buffer_size          4k;
                  proxy_buffers              16 32k;
                  proxy_busy_buffers_size    64k;
                  proxy_temp_file_write_size 64k;

                  proxy_connect_timeout      30s;

                  proxy_pass         http://11.22.33.44:8080;
                  proxy_redirect     off;


                  proxy_set_header   Host             $host;
                  proxy_set_header   X-Real-IP        $remote_addr;
                  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                }



One of the sites:
-----------------

server {
    listen 11.22.33.44:80;
    server_name www.example.com;

    include /etc/nginx/proxy.conf;

    location ~* ^.+.(jpe?g|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|html?|txt|tar|mid|midi|wav|bmp|rtf|js|swf|avi|mp3)$ {
        #forcing browser to cache locally static content for 30 days
        expires 30d;
        root /home/apache/example.com/www/htdocs;

        #graceful fallback in case if static content doesn't exist
        include /etc/nginx/proxy_fallback.conf; #see below
    }
}


proxy_fallback.conf:
--------------------
proxy_set_header   Host             $host;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
if (!-f $request_filename) {
  break;
  proxy_pass http://11.22.33.44:8080;
}







More information about the nginx mailing list