nginx gunicorn.socket:失败,结果为“service-start-limit-hit”

jjjwad0x  于 5个月前  发布在  Nginx
关注(0)|答案(3)|浏览(71)

我正在部署一个django应用程序,它失败了,因为由于某种原因,gunicorn.socket文件没有创建,即使在添加nginx之前,它工作得很好,所以我在互联网上搜索,找到了这个answer,其中的家伙说,这是虚拟环境的原因,但我相信一定有一种方法可以绕过它使用venv的权利?
我从nginx得到的日志:
connect()to unix:/run/gunicorn.sock failed(11 1:Connection refused)while connecting to upstream,
来自Gunicorn的错误:
gunicorn.socket:失败,结果为“service-start-limit-hit”。
我100%确定问题出在gunicorn上,而不是nginx的设置上,因为我检查了gunicorn文件,它不存在。

7rtdyuoh

7rtdyuoh1#

我不了解django,但我假设这个问题与我今天看到的试图在我的一台服务器上启动MySQL服务的问题类似(参见这里:https://stackoverflow.com/a/55141733/708323)。
基本上,“start-limit-hit”消息是一个转移注意力的信息--服务启动尝试多次启动您提供的服务名称,如果在第五次尝试失败后(对我来说,至少)它在第六次尝试时崩溃,并显示“start-limit-hit”。(可能是/var/log/syslog),以查看阻止服务在尝试1-5时启动的真实的错误。

zbdgwd5y

zbdgwd5y2#

检查您是否对gunicorn.service文件中提到的用户/组具有适当的权限。
我有同样的问题,我的gunicorn文件有:

[Service]
User= www-data 
Group= www-data

字符串
我更改了gunicorn服务文件、socket文件和django目录的权限,它工作得很好。

chown www-data:www-data /etc/systemd/system/gunicorn.service
chown www-data:www-data /etc/systemd/system/gunicorn.socket
chown www-data:www-data -R myproject/


希望,这有帮助。

balp4ylt

balp4ylt3#

我的问题与Django设置有关
由于错误的环境变量值,Django使用了sqlite3而不是pgsql
所以我的建议是从/var/log/syslog开始,尝试在没有nginx的情况下启动gunicorn
类似gunicorn --workers=2 'zt.wsgi' -b 0.0.0.0:8000的东西,然后在8000端口上检查您的网站URL

相关问题