gatewaynginx - Error 502 en nginx+php5-fpm
nginx 502 bad gateway php (4)
El problema es el propio socket, sus problemas en casos de carga elevada son bien conocidos. Considere usar la conexión TCP / IP en lugar del socket de Unix, para lo cual debe hacer estos cambios:
- en la configuración del grupo php-fpm reemplace
listen = /var/run/php5-fpm.sock
conlisten = 127.0.0.1:7777
- en / etc / nginx / php_location reemplace
fastcgi_pass unix:/var/run/php5-fpm.sock;
confastcgi_pass 127.0.0.1:7777;
Tengo un error con subj. El servidor no tiene una carga alta: ~ 15% de CPU, hay varios GB de memoria, el disco duro no es de tipo buisy. Pero el error 502 arroja aproximadamente en el 3% de los casos.
Programas: Debian 6, nginx / 0.7.62, php5-fpm (5.3.3-1).
En error.log de nginx es este error:
connect() to unix:/var/run/php5-fpm.sock failed
Estado de php5-fpm generalmente así:
accepted conn: 41680
pool: www
process manager: dynamic
idle processes: 258
active processes: 1
total processes: 259
Creo que esta carga media no es alta.
He aumentado los parámetros de backlog: en sysctl - net.core.somaxconn = 5000, en php-fpm pool - listen.backlog = 5000. Sin efecto.
Cito una configuración:
/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;
grupo 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
¿Qué puedo hacer para optimizar este sistema y hacer que esto use todos los recursos del servidor?
PD. Lo siento, mi inglés es malo.
En Centos 7, Plesk 12.5
Tuve este problema después de que mi disco duro se llenara y algunos servicios fallaran. Otros dominios funcionan perfectamente, pero ninguno de ellos me dio 502 y similares como tiempos de espera. Desde el registro de errores:
[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
Para resolverlo, tuve que (primero hacer espacio disponible y luego) reiniciar php-fpm y nginx - ¡entonces este error desapareció!
La única razón para que este archivo no se haya creado es la configuración en /etc/php-fpm.d/www.conf
Cambiar escuchar = 127.0.0.1:9000
Con listen = /var/run/php-fpm/php-fpm.sock
Y luego reinicia tanto nginx como php-fpm
Tengo el mismo problema, pero no deseo cambiar de sockets a TCP / IP. Reiniciar php-fpm y nginx resolverán el problema.
sudo /etc/init.d/php-fpm restart
sudo /etc/init.d/nginx restart