J'ai une erreur avec subj. Le serveur n'est pas très chargé: environ 15% de la CPU, il y a plusieurs Go de mémoire, le disque dur n'est pas disponible. Mais l'erreur 502 jette environ dans 3% des cas.
Programmes: Debian 6, nginx/0.7.62, php5-fpm (5.3.3-1).
Dans error.log of nginx, cette erreur est la suivante:
connect() to unix:/var/run/php5-fpm.sock failed
L'état de php5-fpm ressemble habituellement à ceci:
accepted conn: 41680
pool: www
process manager: dynamic
idle processes: 258
active processes: 1
total processes: 259
Je pense que ce chargement moyen n'est pas élevé.
J'ai augmenté les paramètres de backlog: dans sysctl - net.core.somaxconn = 5000, dans le pool php-fpm - listen.backlog = 5000. Aucun effet.
Je cite une 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/emplacement_php
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;
pool 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
Que puis-je faire pour optimiser ce système et lui faire utiliser toutes les ressources du serveur?
PS. Je suis désolé, mon anglais est mauvais.
Le problème est le socket lui-même, ses problèmes sur les cas de forte charge est bien connu. Pensez à utiliser une connexion TCP\IP au lieu d'une prise Unix. Pour cela, vous devez apporter les modifications suivantes:
listen = /var/run/php5-fpm.sock
avec listen = 127.0.0.1:7777
fastcgi_pass unix:/var/run/php5-fpm.sock;
par fastcgi_pass 127.0.0.1:7777;
Sur Centos 7, Plesk 12.5
J'ai eu ce problème après que mon disque dur a été saturé et que certains services aient échoué . D'autres domaines fonctionnaient parfaitement, mais aucun d'entre eux ne m'a donné 502 ou moins. Du journal des erreurs:
[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
Pour le résoudre, je devais (d'abord libérer de l'espace, puis) redémarrer php-fpm et nginx - puis cette erreur a disparu!
La seule raison pour laquelle ce fichier n'a pas été créé est la configuration à /etc/php-fpm.d/www.conf
Changer listen = 127.0.0.1:9000
Avec listen = /var/run/php-fpm/php-fpm.sock
Et puis redémarrez Nginx et php-fpm