簡體   English   中英

flask應用程序未通過uwsgi和超級用戶將代碼更改應用於服務器

[英]flask app not applying code changes to server with uwsgi and supervisor

我有一個使用uwsgi,nginx和超級用戶運行的flask應用程序。 不管我嘗試什么,我似乎都無法使代碼更改在服務器上生效。

如果我在本地運行該應用程序,則更改在那里。 如果我停止並啟動uwsgi,更改將生效。 如果我重新啟動Supervisor服務,則更改不會生效。

我知道代碼已更改,因為我登錄並看到了所做的更改,但它仍在特定路徑上運行舊代碼。 如果我更改頁面標題,這些更改會立即生效,但是對於我的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;
}
}

在測試時,我也從上游讀取響應報頭時,在上游過早關閉連接時收到很多此錯誤

如果您對代碼所做的更改未反映在程序的行為中,則說明您的代碼沒有被重新加載,或者沒有被更改,或者您誤解了所做的更改。 對我而言,最常見的情況是.pyc文件無法刷新。 您可以嘗試清除項目中的所有pyc文件,然后假設您有任何pyc文件,然后再次啟動它。 這也將具有重新啟動應用程序的好處。

在執行任何操作之前,我建議您使用主管重新啟動您的應用程序。 如果您的應用程序在主管內,則可以使用以下相關方法:

supervisorctl stop all

supervisorctl start all

supervisorctl restart all

編輯:我忘了提一下,如果您正在瀏覽器中查看它,那么可以想象瀏覽器正在緩存舊版本。 如果是這種情況,則需要進行硬刷新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM