我有一个使用uwsgi,nginx和supervisor运行的烧瓶应用程序。 无论我尝试什么,我似乎无法让代码更改在服务器上生效。
如果我在本地运行应用程序,则会有更改。 如果我停止并启动uwsgi,则更改生效。 如果我重新启动主管服务,则更改不会生效。
我知道代码有更改,因为我登录并查看我所做的更改,但它仍在特定路径上运行旧代码。 如果我更改页面标题,那些更改会立即生效,但对于我的webhook终点,它们似乎永远不会改变。
以下是我的配置文件。
app.ini
[uwsgi]
module = wsgi
master = true
processes = 5
socket = app.sock
chmod-socket = 660
vacuum = true
die-on-term = true
supervisor
[program:app.io]
command=/home/www/beta/v_env/bin/uwsgi --ini /home/www/beta/app.ini --chown-socket www-data:www-data
directory=/home/www/beta
autostart=true
autorestart=true
stdout_logfile=/home/logs/app_uwsgi.log
redirect=true
stopsignal=QUIT
nginx
server {
listen 80;
server_name beta.domain.io;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/www/beta/app.sock;
uwsgi_read_timeout 1800;
}
}
测试时我也经常收到这个错误 从上游读取响应头时上游过早关闭连接
答案 0 :(得分:0)
如果您对代码的更改未反映在您的程序行为中,那么您的代码既未重新加载,也未更改,或者您误解了您的更改。这种情况发生在我身上最常见的时间是.pyc文件无法刷新。您可以尝试清除项目中的所有pyc文件,然后再次启动它,假设您有任何pyc文件。这也将具有重新启动应用程序的好处。
在做任何事情之前,我建议使用主管重启你的应用程序。如果您的申请是在主管内,您可以使用以下相关方法:
supervisorctl stop all
supervisorctl start all
supervisorctl restart all
编辑: 我忘了提到如果你在浏览器中查看它,那么可以想象浏览器正在缓存旧版本。如果是这种情况,则需要进行硬刷新。