我是使用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个请求。
关于可能发生的事情或如何修复它的任何想法?
原来这不是nginx的问题,而是FastCGI的问题。在启动FastCGI之前设置PHP_FCGI_MAX_REQUESTS=0作为环境变量应该允许任意数量的请求。