Nginx - 502 错误网关

Nginx - 502 错误网关

我正在努力如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 提供 Django 应用程序

我已经完成了教程并重新启动了 nginx 和 uwsgi。我注意到,如果我转到我的服务器的 IP,我会看到我的网站(这让我认为 uwsgi 工作正常)。但是如果我转到www.mysite.com,我会收到 502 错误。我的 nginx 配置文件/etc/nginx/sites-available包含mysite

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;
}

我究竟做错了什么?

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

我很困惑,我知道我一直在处理一些 uwsgi 文件,

$ sudo systemctl start uwsgi 

不会导致错误。此外,该网站仍在该 IP 地址上提供服务。我以为是 uwsgi 这样做的。

$ netstat -a|grep uwsgi
unix  2      [ ACC ]     STREAM     LISTENING     2373238691 /run/uwsgi/mysite.sock

答案1

502 Bad Gateway 错误意味着服务器没有从另一台服务器获得正确的响应。在你的情况下,它是uWSGI服务器。它要么没有运行,要么由于错误而停止。

使用 检查 uWSGI 服务器的状态sudo systemctl status uwsgi

答案2

在 php7 中 www-conf 位于:/etc/php/7.0/fpm/pool.d

在此文件中我发现这个:

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

; Set listen(2) backlog.

我在中设置了一个参数/etc/nginx/sites-available/[site]

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

而且它正在发挥作用:)

相关内容