500个请求后,nginx给出504错误

时间:2013-05-29 18:10:25

标签: nginx timeout

我很擅长使用nginx而且我遇到一个问题,在我的计算机上本地运行的nginx请求500页后,我开始收到504网关超时错误。

我的nginx.conf文件看起来像这样

events {
    worker_connections  1024;
}


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

    sendfile        on;

    keepalive_timeout  65;

    proxy_buffer_size   128k;
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;

    server {
        listen       80;
        server_name  localhost;

        charset utf-8;

        location / {
            root   html;
            index  index.php index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
        try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_read_timeout 5s;
            include        fastcgi_params;
        }
    }

    server {
    listen          80;
    server_name     local-testserver;
    error_log       logs/local-testserver.error.log;
    access_log      logs/local-testserver.access.log;
    keepalive_timeout  1s;

    location / {
        root        C:/Code/PHP/TestServer;
        index       index.php;
    }



        location ~ \.php$ {
            root            C:/Code/PHP/TestServer;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
        }

    }
}

TestServer /中的index.php只包含

<?php
    echo "hi";
?>

我正在使用AS3中的URLRequest类对此进行测试,但实际上我尝试手动发送500个请求以查看是否存在差异,并且在这两种情况下,第501个请求都出现了504错误。重新启动服务器允许我再发出500个请求。

关于可能发生的事情或如何解决问题的任何想法?

1 个答案:

答案 0 :(得分:0)

原来这不是一个nginx问题,而是FastCGI问题。在启动FastCGI之前将PHP_FCGI_MAX_REQUESTS = 0设置为环境变量应允许任意数量的请求。