【问题标题】:flask app not applying code changes to server with uwsgi and supervisor烧瓶应用程序未使用 uwsgi 和主管将代码更改应用于服务器
【发布时间】:2015-07-19 17:12:34
【问题描述】:

我有一个使用 uwsgi、nginx 和主管运行的烧瓶应用程序。 无论我尝试什么,我似乎都无法让代码更改在服务器上生效。

如果我在本地运行应用程序,更改就在那里。 如果我停止并启动 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;
}
}

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

【问题讨论】:

    标签: python nginx flask uwsgi supervisord


    【解决方案1】:

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

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

    supervisorctl stop all
    
    supervisorctl start all
    
    supervisorctl restart all
    

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

    【讨论】:

    • 代码更改正在反映,我会查看代码并查看更改。当我对 html 文件进行更改并且发生更改时,我排除了浏览器缓存,添加新路由或新文件从未更改,停止 uwsgi 并重新启动它是使其工作的唯一方法。重新启动主管没有做任何事情。我会尝试你对 pyc 文件的建议。
    猜你喜欢
    • 2018-11-20
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 2019-04-05
    相关资源
    最近更新 更多