我的服务器出了点问题:
Ubuntu 12.04
nginx 1.4.6
2GB RAM
OpenVZ VPS
我增加了 php-fpm 设置,因为默认设置太低了。如下所示:
pm.max_children = 48
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 15
pm.max_requests = 100
我得到了超快的响应,但 10 次中有 4 次,当我点击链接时,它会超时或得到非常迟的响应。如果它正常工作并且似乎是那些较长的链接之一,我再次点击它,我可能会得到快速响应或再次延迟。
无论如何,我将服务器数量减少到如下程度:
pm.max_children = 48
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 100
现在服务器运行正常。虽然响应速度不是很快,但所有连接都良好且合理。我最多在 1 秒内收到响应。
我认为这些第一个数字对于我的机器来说并不高。(这是目前网站运行的情况)
total used free shared buffers cached
Mem: 2048 604 1443 0 0 112
-/+ buffers/cache: 491 1556
Swap: 256 0 256
当它出现异常时,我记得“-/+ buffers/cache”行大致相同,但第一行“Mem”显示已使用 1600。
该服务器上只有一个网站,其繁忙时段在 15 分钟内会有 60-90 次访问。(几乎不会同时有 30 个请求?)
我很好奇为什么更高的数字(似乎对我的服务器资源没有问题)会导致这种行为。我也想获得那些超快速的响应。
如果有人感兴趣的话,这是我的 nginx 配置。(删除了不必要的行,例如文档根目录和它正在监听的端口等等)
user www-data www-data;
worker_processes 2;
events
{
worker_connections 1024;
}
http
{
include mime.types;
default_type application/octet-stream;
#access_log off;
sendfile on;
tcp_nopush on;
tcp_nodelay off;
keepalive_timeout 5;
client_max_body_size 10M;
server_tokens off;
gzip on;
gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
server
{
location ~ \.php$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
}
答案1
您是否已验证监听 9000 的后端服务器是否及时响应?如果没有,请调整您的后端服务器。您是否查看过超时参数 refhttps://stackoverflow.com/questions/561946/how-do-i-prevent-a-gateway-timeout-with-fastcgi-on-nginx
否则,在 nginx 中启用调试选项并参考日志文件寻找一些线索。http://nginx.org/en/docs/debugging_log.html