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項目。
