gunicorn在重新启动后也无法拾取django代码中的更改

ego6inou  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(134)

我有一个用django构建的Web应用程序,并在GCP计算引擎示例上使用gunicorn和nginx部署。我用nginx提供静态文件。
对于nginx,每当我将新代码推送到服务器,运行collectstatic,并重新启动nginx时,我都会看到静态文件更新工作正常。
问题始于服务器代码。每当我把代码推到我的django视图,或者运行迁移,或者把代码推到我的html文件,然后重启gunicorn,我都不会马上看到变化。大约需要一整天的时间才能使更改生效。我已经尝试重新加载守护进程,重新启动gunicorn,重新启动nginx,但问题仍然存在
对于nginx,这里是我在nginx配置上的位置设置

location /static/ {
   alias /home/user/app/backend/static/;
}

location / {
   proxy_pass http://127.0.0.1:8000;
}

字符串
在那里,你可以看到我使用nginx提供静态文件,然后将每个其他请求传递给应用程序。
然后当我把代码推到我的github上,把它拉到应用程序中,然后运行

python3 manage.py collectstatic


然后重启nginx

sudo systemctl restart nginx


一切都很好。
现在来说说我认为问题的来源。如果我对index.html文件进行了更改(从上面的conf中可以看到,它由gunicorn提供服务),然后重新启动守护进程和gunicorn

sudo systemctl daemon-reload

sudo systemctl restart gunicorn.socket gunicorn.service


我没有看到我的应用程序中的更改,即使在清除浏览器中该高速缓存后。问题是,当我打开脚本时,我可以看到我的应用程序中的更改,但即使如此,我在网络上也看不到我的应用程序中的更改。是的,我在settings.py中有DEBUG=False。但是,大约一天后,我开始看到变化。这几乎就像是在某个地方有一个缓存,它可以持续大约一天左右。
请任何帮助在所有将不胜感激。
注意:有可能我注意到的1天更新完全是巧合,与问题无关。我可能在这个时间范围内做了正确的事情,但不知道它是什么。也随时让我知道,如果我做的主机完全错误。这是我的第一次
谢谢你,我很好

o7jaxewo

o7jaxewo1#

我终于解决了我的问题。
我不得不完全阻止gunicorn使用

pkill gunicorn

字符串
然后使用

gunicorn -c conf/gunicorn_config.py myproject.wsgi


我仍然不知道为什么我不能使用上面的正常命令重新启动gunicorn,但这对我很有效。

相关问题