“(111:连接被拒绝)连接到上游时,客户端:” | Django、Gunicorn、Nginx - 服务器错误 (500)
"(111: Connection refused) while connecting to upstream, client: " | Django, Gunicorn, Nginx - Server Error(500)
我已经部署了我的 Django 应用程序,但出现 500 错误。当我输入主页 url "mysite.com" 时,它会出现错误并且不会加载,但是当我输入 "mysite.com/careers" 或 "mysite.com/sell" 时,它们恰好是完整的静态页面,它出现得很漂亮。不提供主页和其他具有动态数据的页面。
在阅读了一些相关问题之后,这似乎是一个 Gunicorn 问题。
这里可能是什么问题?下面是来自 Nginx 的错误日志。
Nginx 错误日志:
2019/12/16 17:30:15 [error] 20605#20605: *1370 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xx.xx, server: xxx.xxx.xxx.xxx, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", host: "mysite.com"
nginx.conf 文件:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
client_max_body_size 0;
proxy_max_temp_file_size 0;
proxy_buffering off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
...
}
nginx 站点可用文件:
server {
listen 80;
server_name xxx.xxx.xxx.xxx mysite.com www.mysite.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/djangoadmin/pyapps/MySite;
}
location /media/ {
root /home/djangoadmin/pyapps/MySite;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
如果您能帮助解决这个问题,我们将不胜感激。我快到了!
我相信您从这个可能遇到的问题列表中得到了一些东西:
您没有 gunicorn 运行 因为任何错误或者它还没有启动。
您的 gunicorn 进程正在侦听另一个 unix 套接字路径或 ip 端口。
你的socket权限不正确,nginx因为权限问题无法连接
我的问题的根源是 运行 我的服务器上的新迁移失败。
所有受影响的页面都是显示与这些模型关联的数据的页面,或者它们是外键的页面。
在寻找答案的过程中,我犯了一个严重的生产错误,即短暂地转向 Debug:On。希望编程大神见谅。谢谢你们。
我已经部署了我的 Django 应用程序,但出现 500 错误。当我输入主页 url "mysite.com" 时,它会出现错误并且不会加载,但是当我输入 "mysite.com/careers" 或 "mysite.com/sell" 时,它们恰好是完整的静态页面,它出现得很漂亮。不提供主页和其他具有动态数据的页面。 在阅读了一些相关问题之后,这似乎是一个 Gunicorn 问题。 这里可能是什么问题?下面是来自 Nginx 的错误日志。
Nginx 错误日志:
2019/12/16 17:30:15 [error] 20605#20605: *1370 connect() to unix:/run/gunicorn.sock failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xx.xx, server: xxx.xxx.xxx.xxx, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", host: "mysite.com"
nginx.conf 文件:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
client_max_body_size 0;
proxy_max_temp_file_size 0;
proxy_buffering off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
...
}
nginx 站点可用文件:
server {
listen 80;
server_name xxx.xxx.xxx.xxx mysite.com www.mysite.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/djangoadmin/pyapps/MySite;
}
location /media/ {
root /home/djangoadmin/pyapps/MySite;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
如果您能帮助解决这个问题,我们将不胜感激。我快到了!
我相信您从这个可能遇到的问题列表中得到了一些东西:
您没有 gunicorn 运行 因为任何错误或者它还没有启动。
您的 gunicorn 进程正在侦听另一个 unix 套接字路径或 ip 端口。
你的socket权限不正确,nginx因为权限问题无法连接
我的问题的根源是 运行 我的服务器上的新迁移失败。 所有受影响的页面都是显示与这些模型关联的数据的页面,或者它们是外键的页面。 在寻找答案的过程中,我犯了一个严重的生产错误,即短暂地转向 Debug:On。希望编程大神见谅。谢谢你们。