错误502在nginx + php5-fpm中

我有一些错误的主题。 服务器不高负载:〜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 

我认为,这意味着加载不高。

我已经增加了积压参数:在sysctl – net.core.somaxconn = 5000,在php-fpm池 – listen.backlog = 5000。没有效果。

我引用一个configuration:

/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。 对不起,我的英文不好。

问题是套接字本身,它在高负载情况下的问题是众所周知的。 请考虑使用TCP \ IP连接而不是unix套接字,因为您需要进行这些更改:

  • php-fpm池configuration中,listen = 127.0.0.1:7777replacelisten = /var/run/php5-fpm.sock
  • / etc / nginx / php_location中replacefastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_pass 127.0.0.1:7777;

在Centos 7上,Plesk 12.5

硬盘已满并且某些服务失败后,我遇到了这个问题。 其他域名工作完美,但没有一个只给了我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 – 然后这个错误消失了!

这个文件没有创build的唯一原因是configuration在/etc/php-fpm.d/www.conf

更改listen = 127.0.0.1:9000

使用listen = /var/run/php-fpm/php-fpm.sock

然后重新启动nginx和php-fpm

我同样的问题,但不希望从套接字切换到TCP / IP。 重新启动php-fpm和nginx将解决这个问题。

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