502 错误 nginx 8000 端口没有监听
502 error nothing is listening on port 8000 nginx
我在尝试部署网络服务器时遇到了 运行 问题,我遇到了 502 错误网关错误。
查看 nginx 错误日志时,我得到以下信息:
failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: xxx.xxx.xxx.xx, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "example.com"
然后我 运行 sudo netstat -tnlp | grep :8000
查看是否有任何东西正在监听 8000 端口,但没有输出,这意味着确实没有任何东西正在监听 8000 端口。
此外,这是我在启用站点中的 nginx 配置:
upstream app_server {
server unix:/home/daniel/myproject/myproject.sock fail_timeout=0;
}
server {
listen 80;
server_name 138.197.152.54;
client_max_body_size 50M;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/daniel/myproject;
}
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000/;
proxy_redirect off;
# proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_read_timeout 30;
}
我想知道服务器正在侦听的端口是否是错误的,因为代理通道有 127.0.0.1:8000,并且在顶部,服务器显然正在侦听在端口 80.
我的配置有问题吗?我对使用 nginx、gunicorn 还很陌生,非常感谢在这个问题上的任何帮助。
所以我发现问题确实出在我的 nginx 配置上。
具体来说,解决方案是更改 proxy_pass.
的设置
而不是 proxy_pass http://127.0.0.1:8000
,应该是:
proxy_pass http://unix:/home/daniel/myproject/myproject.sock;
当然,将 daniel、myproject 和 myproject.sock 更改为您的实际文件和目录名称。
我从本教程中获得了所有这些信息:https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04
我在尝试部署网络服务器时遇到了 运行 问题,我遇到了 502 错误网关错误。
查看 nginx 错误日志时,我得到以下信息:
failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: xxx.xxx.xxx.xx, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "example.com"
然后我 运行 sudo netstat -tnlp | grep :8000
查看是否有任何东西正在监听 8000 端口,但没有输出,这意味着确实没有任何东西正在监听 8000 端口。
此外,这是我在启用站点中的 nginx 配置:
upstream app_server {
server unix:/home/daniel/myproject/myproject.sock fail_timeout=0;
}
server {
listen 80;
server_name 138.197.152.54;
client_max_body_size 50M;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/daniel/myproject;
}
location / {
include proxy_params;
proxy_pass http://127.0.0.1:8000/;
proxy_redirect off;
# proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_read_timeout 30;
}
我想知道服务器正在侦听的端口是否是错误的,因为代理通道有 127.0.0.1:8000,并且在顶部,服务器显然正在侦听在端口 80.
我的配置有问题吗?我对使用 nginx、gunicorn 还很陌生,非常感谢在这个问题上的任何帮助。
所以我发现问题确实出在我的 nginx 配置上。 具体来说,解决方案是更改 proxy_pass.
的设置而不是 proxy_pass http://127.0.0.1:8000
,应该是:
proxy_pass http://unix:/home/daniel/myproject/myproject.sock;
当然,将 daniel、myproject 和 myproject.sock 更改为您的实际文件和目录名称。
我从本教程中获得了所有这些信息:https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04