Proxy - 2nd apache process started

mates007 at centrum.cz mates007 at centrum.cz
Thu Apr 2 01:45:39 MSD 2009


Thanks a lot, this was the reason ;-)
Martin

______________________________________________________________
> Od: is at rambler-co.ru
> Komu: nginx at sysoev.ru
> Datum: 01.04.2009 22:55
> Předmět: Re: Proxy - 2nd apache process started
>
>On Wed, Apr 01, 2009 at 10:07:52PM +0200, mates007 at centrum.cz wrote:
>
>> 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?
>
>After 90s (proxy_read_timeout  90) nginx closes connection to the proxied
>server issues 504 error. Since there is
>
>         error_page   502 503 504  /50x.html;
>
>nginx redirects internally the error to /50x.html. However, you have
>no static location for /50x.html and the request is passed to Apache again:
>
>         location / {
>             proxy_pass         http://11.22.33.44:8080;
>
>This is why another Apache process is started. After the second 90s
>timeout (i.e., after 180s) nginx shows default 504 page (since
>recursive_error_pages is off).
>
>
>> 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;
>> }
>> 
>> 
>
>-- 
>Igor Sysoev
>http://sysoev.ru/en/
>
>






More information about the nginx mailing list