Je rencontre des 502 Gateway
erreurs lors de l'accès à un fichier PHP dans un répertoire ( http://example.com/dev/index.php
). Les journaux dit simplement ceci:
2011/09/30 23:47:54 [error] 31160#0: *35 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "domain.com"
Je n'ai jamais vécu cela auparavant. Quelle est la solution pour ce type d' 502 Gateway
erreur?
C'est le nginx.conf
:
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Réponses:
On dirait que vous n’avez pas démarré et configuré le backend pour Nginx. Commencez
php-fpm
et ajoutez les éléments suivants ànginx.conf
, dans lehttp
contexte:la source
php-fpm
installé. À votre santé.netstat -l
et voyez pour/var/run/php5-fpm.sock
(la configuration correspondante est normalement dans /etc/php5/fpm/pool.d/www.conf.fastcgi_pass unix:<socket>
listen = /var/run/php5-fpm.sock
intérieur/etc/php5/fpm/pool.d/www.conf
. mais vous voudrezlisten = 9000
et;listen = /var/run/php5-fpm.sock
. si vous étiez comme moi (sinon vous pouvez aussi écouter un conseil judicieux de Johannes M. qui, je suppose, vous laisserait quelque chose commefastcgi_pass unix:/var/run/php5-fpm.sock;
quelque part dans votre mondenginx.conf
)Cette réponse est seulement pour ceux qui ont une erreur comme celle-ci:
Réécrivez votre configuration nginx pour utiliser ip, pas dns. Par exemple,
127.0.0.1
au lieu delocalhost
, supprimez l’alias ipv6 de / etc / hosts.la source
listen 80
était juste (et il y a beaucoup d’exemples avec cela) mais je ne pensais pas que cela impliquait les adresses IPv4 (127.0.0.1
) et IPv6 ([::1]
).listen 80 default_server
àlisten 0.0.0.0:80
.Vous avez des erreurs comme ça aussi. Le problème était mon backend abstrait référençant deux serveurs.
php-fpm
était seulement la liste à la prise ...la source
Avait le même problème avec les requêtes envoyées par proxy à un serveur de nœud qui écoute sur le port 5000. Les requêtes résultent avec
200 OK
mais parfois de502 Bad Gateway
manière aléatoire. NGINX a montré l'erreur:Ma solution:
server.listen(5000, 'localhost');
listen [::]:80;
oulisten [::]:443 ssl default_server;
).proxy_pass http://127.0.0.1:5000
(pasproxy_pass http://localhost:5000
).J'espère que ça aide quelqu'un.
la source
Dans mon cas, l'erreur était un mauvais emplacement pour le fichier error_log du service php5.6-fpm et le service php-fpm ne parvenait pas à démarrer et nginx n'était pas en mesure de s'y connecter . Vous pouvez le trouver dans
/etc/php/5.6/fpm/php.ini
(vous pouvez remplacer 5.6 par la version que vous utilisez).la source
Aujourd'hui, j'ai rencontré ce problème et pour moi, c'était un problème de mémoire insuffisante pendant une période de charge élevée. Donc, niveler le type d'instance corrige le problème.
la source
J'ai eu le même problème et l'ajout de l'instruction d'écoute
a travaillé pour moi.
Chose intéressante, j'ai d'autres blocs de serveurs qui fonctionnent très bien sans cela!
la source