502 Gateway
Beim Zugriff auf eine PHP-Datei in einem Verzeichnis ( http://example.com/dev/index.php
) treten Fehler auf . Die Protokolle sagen einfach Folgendes:
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"
Das habe ich noch nie erlebt. Was ist die Lösung für diese Art von 502 Gateway
Fehler?
Dies ist der 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/*;
}
Antworten:
Es hört sich so an, als hätten Sie das Backend für Nginx noch nicht gestartet und konfiguriert. Starten Sie
php-fpm
und fügen Sienginx.conf
imhttp
Kontext Folgendes hinzu :quelle
php-fpm
installiert. Prost.netstat -l
und sieh nach/var/run/php5-fpm.sock
(die Konfiguration dafür befindet sich normalerweise in /etc/php5/fpm/pool.d/www.conf.fastcgi_pass unix:<socket>
listen = /var/run/php5-fpm.sock
drinnen haben/etc/php5/fpm/pool.d/www.conf
. aber du wirst wollenlisten = 9000
und;listen = /var/run/php5-fpm.sock
. wenn du wie ich wärst (oder alternativ kannst du dir den weisen Hinweis von Johannesfastcgi_pass unix:/var/run/php5-fpm.sock;
nginx.conf
Diese Antwort ist nur für diejenigen, die eine solche Fehlermeldung erhalten:
Schreiben Sie Ihre Nginx-Konfiguration neu, um IP und nicht DNS zu verwenden. Zum Beispiel
127.0.0.1
anstelle vonlocalhost
oder entfernen Sie den IPv6-Alias aus / etc / hosts.quelle
listen 80
dachte, die Verwendung von just war in Ordnung (und es gibt viele Beispiele dafür), aber ich hätte nicht gedacht, dass dies sowohl IPv4- (127.0.0.1
) als auch IPv6- ([::1]
) Adressen impliziert .listen 80 default_server
zulisten 0.0.0.0:80
.Habe auch solche Fehler. Problem war mein abstraktes Backend, das auf zwei Server verweist.
php-fpm
war nur eine Auflistung zu Sockel ...quelle
Hatte das gleiche Problem mit Proxy-Anfragen an einen Node-Server, der auf Port 5000 lauscht. Anfragen ergaben sich mit
200 OK
aber gelegentlich502 Bad Gateway
zufällig. NGINX zeigte den Fehler:Meine Lösung:
server.listen(5000, 'localhost');
listen [::]:80;
oderlisten [::]:443 ssl default_server;
) entfernt.proxy_pass http://127.0.0.1:5000
(nichtproxy_pass http://localhost:5000
).Hoffe das hilft jemandem.
quelle
In meinem Fall war der Fehler ein fehlerhafter Speicherort für die Datei error_log für den Dienst php5.6-fpm und daher konnte der Dienst php-fpm nicht gestartet werden und nginx konnte keine Verbindung dazu herstellen . Sie finden es in
/etc/php/5.6/fpm/php.ini
(Sie können 5.6 durch die Version ersetzen, die Sie ausführen).quelle
Gerade heute bin ich auf dieses Problem gestoßen, und für mich war es ein Problem mit geringem Arbeitsspeicher während einer Hochlastperiode. Das Problem wurde behoben, indem der Instanztyp erhöht wurde.
quelle
Ich hatte das gleiche Problem und fügte die Listen-Anweisung hinzu
arbeitete für mich.
Interessanterweise habe ich andere Server-Blöcke, die ohne diese ziemlich glücklich laufen!
quelle