uwsgi 熱部署 熱啟動 熱更新
阿新 • • 發佈:2020-08-16
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-reload(https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/articles/TheArtOfGracefulReloading.html#lazy-appsworker)
touch-chain-reload(https://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專案。