django - UWSGI套接字更改组并拒绝连接,导致502错误的网关

标签 django sockets nginx uwsgi

我正在使用NGINX/UWSGI运行Django应用。

我称呼uwsgi:

/home/rootadmin/.virtualenvs/data_collection/bin/uwsgi --ini /etc/uwsgi/sites/data_collection_project.ini

data_collection_project.ini :
[uwsgi]
project = data_collection_project
base = /data_nfs/data_collection_project

chdir = %(base)
home = /home/rootadmin/.virtualenvs/data_collection

module = data_collection_project.wsgi:application
master = true
processes = 2

socket = /data_nfs/data_collection_project/%(project).sock
chmod-socket = 666

结果,创建了.sock。使用ls -l我看到套接字为
srw-rw-rw-  1 rootadmin rootadmin        0 Jul 30 12:24 data_collection_project.sock

至此,我的网站运行正常。在某个时候,我一直无法确定,我的网站开始将502 bad gateway调整为每个请求。此时,我发现.sock的组更改为www-data
srw-rw-rw-  1 rootadmin www-data         0 Jul 30 12:25 data_collection_project.sock

在这一点上,我的nginx error.log也引发了这个错误:
2017/07/30 12:25:34 [error] 1940#0: *652 connect() to unix:///data_nfs/data_collection_project/data_collection_project.sock failed (111: Connection refused) while connecting to upstream, client: client_ip, server: my_ip, request: "GET  /admin/binaryQuestionApp/point/ HTTP/1.1", upstream: "uwsgi://unix:///data_nfs/data_collection_project/data_collection_project.sock:", host: "my_website_", referrer: "https://my_website/admin/binaryQuestionApp/"

我不知道为什么/从哪里发生这种变化。我的网站过去使用该月的运行情况一直很好。然而,今天,自从这种情况发生以来,我第一次运行了sudo reboot。如何解决这个问题?

最佳答案

供我自己将来引用,或有其他类似问题的人。

问题在于要在虚拟环境中同时运行系统范围的UWSGI和UWSGI。系统范围的版本启用了Emperor模式,这导致系统范围的版本控制了在虚拟环境中运行的应用程序,从而导致所有配置和python-home目录均被关闭。

对我来说,解决方案很简单。系统范围版本中的sudo service uwsgi stop可以简单地解决此问题。如果两个实例都需要运行,请查看禁用皇帝模式。

关于django - UWSGI套接字更改组并拒绝连接,导致502错误的网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45398903/

相关文章:

python - Nginx + fastcgi截断问题

nginx - Flask 和 nginx 路由

javascript - jquery ajax调用重定向到命名url而不是相同的模板

python - 如何为 Django REST Framework 正确定义模型/序列化器?

centos - 无法在 CentOS 上使用 setsockopt 设置 TCP_NODELAY

c - 套接字编程中的霍夫曼编码

php - 使用PHP通过套接字将数据传递到系统

Nginx+乘客错误 - libcurl.so.4 : version `CURL_OPENSSL_3' not found

Django View 中的 Python Asyncio

python - 无法在html中实现django