flask应用程序没有将代码更改应用于uwsgi和supervisor的服务器

时间:2015-05-08 17:38:52

标签: python nginx flask uwsgi supervisor

我有一个使用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;
}
}

测试时我也经常收到这个错误 从上游读取响应头时上游过早关闭连接

1 个答案:

答案 0 :(得分:0)

如果您对代码的更改未反映在您的程序行为中,那么您的代码既未重新加载,也未更改,或者您误解了您的更改。这种情况发生在我身上最常见的时间是.pyc文件无法刷新。您可以尝试清除项目中的所有pyc文件,然后再次启动它,假设您有任何pyc文件。这也将具有重新启动应用程序的好处。

在做任何事情之前,我建议使用主管重启你的应用程序。如果您的申请是在主管内,您可以使用以下相关方法:

supervisorctl stop all

supervisorctl start all

supervisorctl restart all

编辑: 我忘了提到如果你在浏览器中查看它,那么可以想象浏览器正在缓存旧版本。如果是这种情况,则需要进行硬刷新。