Nginx - 502 schlechtes Gateway

8

Ich arbeite daran, wie man Django-Anwendungen mit uWSGI und Nginx unter Ubuntu 16.04 bedient .

Ich habe das Tut abgeschlossen und sowohl Nginx als auch Uwsgi neu gestartet. Ich stelle fest, dass ich meine Site sehe, wenn ich zur IP meines Servers gehe (was mich denken lässt, dass uwsgi richtig funktioniert). Wenn ich jedoch zu gehe www.mysite.com, erhalte ich den Fehler 502. Meine Nginx-Konfigurationsdatei im /etc/nginx/sites-availableis mysiteenthält:

server {
listen 80;
server_name mysite.com www.mysite.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /home/deploy/mysite;
}

location / {
    include         uwsgi_params;
    uwsgi_pass      unix:/run/uwsgi/mysite.sock;
}

Was mache ich falsch?

$ systemctl status uwsgi
Failed to connect to bus: No such file or directory

Ich bin verwirrt, ich weiß, ich habe an einer Reihe von uwsgi-Dateien gearbeitet und

$ sudo systemctl start uwsgi 

verursacht keinen Fehler. Auch die Website wird weiterhin unter der IP-Adresse bedient. Ich dachte, Uwsgi würde das tun.

$ netstat -a|grep uwsgi
unix  2      [ ACC ]     STREAM     LISTENING     2373238691 /run/uwsgi/mysite.sock
user61629
quelle
4
Beim Einchecken wird /var/log/nginx/error.logmöglicherweise der Fehler angezeigt.
Shivaditya

Antworten:

18

Der 502 Bad Gateway-Fehler bedeutet, dass der Server keine ordnungsgemäße Antwort von einem anderen Server erhält. In Ihrem Fall ist es uWSGIServer. Es wird entweder nicht ausgeführt oder aufgrund eines Fehlers gestoppt.

Überprüfen Sie den Status des uWSGI-Servers mithilfe von sudo systemctl status uwsgi.

Shivaditya
quelle
2

In php7 ist www-conf in: /etc/php/7.0/fpm/pool.d

In dieser Datei finde ich Folgendes:

; Note: This value is mandatory.
listen = /run/php/php7.0-fpm.sock

; Set listen(2) backlog.

Ich habe einen Parameter in gesetzt /etc/nginx/sites-available/[site]

upstream php-handler {
    #server 127.0.0.1:9000;
    server unix:/run/php/php7.0-fpm.sock;
}

Und es funktioniert :)

user723464
quelle
1
Für mich war es, fastcgi_pass unix:/run/php/php7.0-fpm.sock;wie Sie sagten, dies kommt von php-fpm, das eine Konfigurationsänderung zu127.0.0.1:9000
PJ Brunet