0

此问题发生在使用 Plesk 11.5 并启用 NGINX 和 PHP-FPM 处理的站点上。

php-fpm.sock 失败(11:资源暂时不可用

网站还会显示以下消息:“502 Bad Gateway”NGINX

与该网站的所有连接都将失败,因为 PHP-FPM 将不再允许与该特定网站的任何连接。我能想出的唯一解决方案是重新启动 PHP-FPM(服务 php-fpm 重新启动)。这会持续一段时间,直到 PHP-FPM 缓冲区填满。我尝试更改域特定 php-fpm 设置中的最大连接数,但这似乎不起作用。

另一个值得注意的有趣的事情是,这个特定的域位于具有 30 个其他域的服务器上。然而,当错误发生时,该域是唯一有问题的域。使用 PHP-FPM 进行 PHP 处理的所有其他网站继续正常工作。

PHP-FPM.CONF

include=/etc/php-fpm.d/*.conf
pid = /var/run/php-fpm/php-fpm.pid
error_log = /var/log/php-fpm/error.log
;log_level = notice
emergency_restart_threshold = 10
emergency_restart_interval = 1m
process_control_timeout = 10s
;daemonize = yes

PHP-FPM 域配置(来自 php-fpm.d 文件夹)

listen = php-fpm.sock
listen.owner = root
listen.group = psaserv
listen.mode = 0660

; Following options can be overridden
chdir = /
pm = ondemand
pm.max_children = 25
pm.process_idle_timeout = 10s
pm.start_servers = 3
pm.min_spare_servers = 3
pm.max_spare_servers = 5

NGINX.CONF

#user  nginx;
worker_processes  4;
events {
    worker_connections  2048;
}
http {
    include   mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    tcp_nopush     on;

        send_timeout 60;
        proxy_read_timeout 60;
        proxy_connect_timeout 60;

    #keepalive_timeout  0;
    keepalive_timeout  4;

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;


    gzip  on;
    #gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    server_tokens off;

    include /etc/nginx/conf.d/*.conf;
}

特定领域的 NGINX.conf

(跳过一堆服务器/ssl/域特定参数。这两个可能很重要)。

client_max_body_size 128m;
proxy_read_timeout 10;
4

1 回答 1

0

只是为了尝试本地化问题:

  1. 将 pm = ondemand 切换为 pm = dynamic
  2. 将 pm.start_servers 和 pm.min_spare_servers 增加到 4
  3. 添加 pm.max_requests = 500
  4. 添加 pm.status_path - 阅读文档它是什么以及如何使用它。
  5. 重启 php-fpm 服务

并观察一段时间。

此更改可能会被 plesk 覆盖,因此请注意。

于 2013-09-01T08:42:44.167 回答