UWSGI 套接字更改组并拒绝连接,导致 502 bad gateway
UWSGI socket changes group and refused connection, resulting in 502 bad gateway
我正在 运行使用 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。系统范围版本启用了皇帝模式,这导致系统范围版本控制了虚拟环境中的应用程序 运行,这反过来导致所有配置和 python-home 目录成为离开。
对我来说,解决方案很简单。 sudo service uwsgi stop
在全系统版本中,简单地解决这个问题。如果您需要两个实例 运行,请考虑禁用皇帝模式。
我正在 运行使用 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。系统范围版本启用了皇帝模式,这导致系统范围版本控制了虚拟环境中的应用程序 运行,这反过来导致所有配置和 python-home 目录成为离开。
对我来说,解决方案很简单。 sudo service uwsgi stop
在全系统版本中,简单地解决这个问题。如果您需要两个实例 运行,请考虑禁用皇帝模式。