1. 程式人生 > 實用技巧 >uwsgi 熱部署 熱啟動 熱更新

uwsgi 熱部署 熱啟動 熱更新

uwsgi選項大全:https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Options.html

uwsgi官方熱部署建議:https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/articles/TheArtOfGracefulReloading.html

我這裡介紹一下使用

touch-reload https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/articles/TheArtOfGracefulReloading.html#sighup

選項提供的熱部署方法。還有兩個相似選項:

touch-workers-reloadhttps://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/articles/TheArtOfGracefulReloading.html#lazy-appsworker

touch-chain-reloadhttps://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/articles/TheArtOfGracefulReloading.html#lazy-apps

uwsgi的選項使用方法有兩種:

1,在啟動uwsgi的命令中加入選項,但選項前必須帶--(兩橫)

2,在配置檔案中拿一行出來填入一個選項,不帶--

通常啟動uwsgi的命令中要指定配置檔案,比如:

$ /home/me/py/venvs/web1/bin/uwsgi /home/me/py/www/web1/uwsgi.ini
#第一個是虛擬環境中的uwsgi程式,第二個是配置檔案

所以怎麼加選項就看你自己了。

我直接在配置檔案中加選項,

選項有兩種,一種必須帶引數,一種不帶引數。

方法1中,帶引數直接在選項後隔個空格加入引數,不帶的就不用加,如:

$ /home/me/py/venvs/web1/bin/uwsgi /home/me/py/www/web1/uwsgi.ini --touch-chain-reload <檔案路徑> --lazy-apps
#兩個選項,touch-chain-reload和lazy-apps

方法2中,帶引數的就用個等號加引數,不帶的就用等號加個true,如:

[uwsgi]
touch-chain-reload = <檔案路徑>
lazy-apps = true

lazy-apps選項請參考(https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/articles/TheArtOfGracefulReloading.html#preforking-vs-lazy-apps-vs-lazy

但我發現這三種touch選項只能對單個檔案生效,而不能指定資料夾,目前就只能多指定幾個關鍵檔案了。

如果使用supervisor管理,需要在配置更改後restart專案。