-->

错误502中的nginx + PHP5-FPM错误502中的nginx + PHP5-FPM(Err

2019-05-13 21:46发布

我有一些误差SUBJ。 服务器不高负载:〜15%的CPU,有内存的几个GB,硬盘不buisy。 但是,错误502的情况下为3%左右抛出。

方案:Debian的6,nginx的/ 0.7.62,PHP5-FPM(5.3.3-1)。

在Nginx的error.log中是这样的错误:

connect() to unix:/var/run/php5-fpm.sock failed

PHP5-FPM通常是这样的状态:

accepted conn:   41680
pool:             www
process manager:  dynamic
idle processes:   258
active processes: 1
total processes:  259

我认为,这意味着负荷不高。

我增加了积压PARAMS:在sysctl的 - net.core.somaxconn = 5000,在PHP-FPM池 - listen.backlog = 5000无影响。

我引用的配置:

/etc/nginx/nginx.conf

user www-data;
worker_processes  8;
timer_resolution 100ms;
worker_rlimit_nofile 20240;
worker_priority -5;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  2048;
    use epoll;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

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

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_min_length 1100;
    gzip_buffers 64 8k;
    gzip_comp_level 3;
    gzip_http_version 1.1;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/css;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    client_max_body_size 100M;
    server_tokens off;
}

的/ etc / nginx的/ php_location

fastcgi_pass   unix:/var/run/php5-fpm.sock;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
fastcgi_buffers 256 128k;
#fastcgi_buffer_size 16k;
#fastcgi_busy_buffers_size 256k;
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
include fastcgi_params;

PHP-FPM池

[www]
listen = /var/run/php5-fpm.sock
listen.backlog = 5000
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
user = www-data
group = www-data
pm = dynamic
pm.max_children = 1024
pm.start_servers = 64
pm.min_spare_servers = 64
pm.max_spare_servers = 128
pm.max_requests = 32000
pm.status_path = /system/php5-fpm-status
slowlog = /var/www/log/php-fpm.log.slow
chdir = /var/www

我能做些什么来优化这个系统,使这个使用所有的服务器资源?

PS。 对不起,我的英语不好。

Answer 1:

问题是插座本身,其在高负载情况下的问题是众所周知的。 请考虑使用TCP \ IP连接,而不是Unix套接字,对于需要进行这些更改:

  • PHP-FPM池配置更换listen = /var/run/php5-fpm.socklisten = 127.0.0.1:7777
  • / etc / nginx的/ php_location替换fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_pass 127.0.0.1:7777;


Answer 2:

在CentOS 7之外,Plesk 12.5

我有这个问题后,我的harddisc去充分和一些服务失败。 其他域workt完美,但他们没有一个人只给了我502和超时类似。 从错误日志:

[crit] 3112#0: *65746768 connect() to 
unix:///var/www/vhosts/system/sub.domain.de/php-fpm.sock failed 
(2: No such file or directory) while connecting to upstream

为了解决这个问题,我必须(先可用空间,然后)重启PHP-FPM和nginx的 - 那么这个错误消失了!



Answer 3:

不创建该文件的唯一原因是在/etc/php-fpm.d/www.conf配置

更改听= 127.0.0.1:9000

随着听= /var/run/php-fpm/php-fpm.sock

然后重新启动这两个nginx的和PHP-FPM



Answer 4:

我同样的问题,但不希望从插座切换到TCP / IP。 重新启动PHP-FPM和nginx的将解决这个问题。

sudo /etc/init.d/php-fpm restart
sudo /etc/init.d/nginx restart


文章来源: Error 502 in nginx + php5-fpm