執行多個tornado例項
網頁響應不是特別的計算密集型處理
多個例項充分利用 cpu
多埠怎麼處理
4. 安裝(注意看是否需要指定使用python2版本)
sudo pip2 install supervisor
安裝完之後先啟動 sudo supervisord
echo_supervisord_conf > /etc/supervisor/supervisord.conf
增加乙個tornadoes組
[group:tornadoes]
programs=tornado-8000,tornado-8001,tornado-8002
# 分別定義三個tornado的程序配置
[program:tornado-8000]
directory=/home/pyvip/ws/tudo/ ; 程式的啟動目錄
autostart=true ; 在 supervisord 啟動的時候也自動啟動
startsecs=5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了
autorestart=true ; 程式異常退出後自動重啟
startretries=3 ; 啟動失敗自動重試次數,預設是 3
user=pyvip ; 用哪個使用者啟動
redirect_stderr=true ; 把 stderr 重定向到 stdout,預設 false
stdout_logfile_maxbytes = 20mb ; stdout 日誌檔案大小,預設 50mb
stdout_logfile_backups = 20 ; stdout 日誌檔案備份數
; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)
loglevel=info
[program:tornado-8001]
directory=/home/pyvip/ws/tudo/
autostart=true
startsecs=5
autorestart=true
startretries=3
user=pyvip
redirect_stderr=true
stdout_logfile_maxbytes = 20mb
stdout_logfile_backups = 20
loglevel=info
[program:tornado-8002]
directory=/home/pyvip/ws/tudo/
autostart=true
startsecs=5
autorestart=true
startretries=3
user=pyvip
redirect_stderr=true
stdout_logfile_maxbytes = 20mb
stdout_logfile_backups = 20
loglevel=info
啟動和管理
啟動supervisor
使用預設的配置檔案 /etc/supervisor/supervisord.conf
sudo supervisord
明確指定配置檔案
sudo supervisord -c /home/pyvip/working/supervisord.con
使用 user 使用者啟動supervisord
sudo supervisord -u user
檢視、操作程序狀態
(tornado) pyvip@vip:~/ws/tudo$sudo supervisorctl
[sudo] password for pyvip:
tornadoes:tornado-8000 running pid 17652, uptime 0:00:28
tornadoes:tornado-8001 running pid 17653, uptime 0:00:28
tornadoes:tornado-8002 running pid 17654, uptime 0:00:28
supervisor>stop tornadoes:tornado-8001
tornados:tornado-8001: stopped
supervisor>stop tornadoes:
tornadoes:tornado-8000: stopped
tornadoes:tornado-8001: stopped
tornadoes:tornado-8002: stopped
supervisor>status
tornadoes:tornado-8000 stopped jun 26 07:43 pm
tornadoes:tornado-8001 stopped jun 26 07:43 pm
tornadoes:tornado-8002 stopped jun 26 07:43 pm
supervisorctl 命令介紹
停止某乙個程序,program_name 為 [program:x] 裡的 x
supervisorctl stop program_name
啟動某個程序
supervisorctl start program_name
重啟某個程序
supervisorctl restart program_name
結束所有屬於名為 groupworker 這個分組的程序 (start,restart 同理)
supervisorctl stop groupworker:
結束 groupworker:name1 這個程序 (start,restart 同理)
supervisorctl stop groupworker:name1
停止全部程序,注:start、restart、stop 都不會載入最新的配置檔案
supervisorctl stop all
載入最新的配置檔案,停止原有程序並按新的配置啟動、管理所有程序
supervisorctl reload
根據最新的配置檔案,啟動新配置或有改動的程序,配置沒有改動的程序不會受影響而重啟
supervisorctl update
sudo supervisorctl -u user -p 123 reload
搭配 tornado 服務使用
安裝和執行
nginx 配置檔案
主配置檔案是/etc/nginx/nginx.conf
專案對應的配置檔案放到 /etc/nginx/conf.d/ 或者/etc/nginx/sites-enabled/
upstream tornadoes
proxy_next_upstream error;
server
}
Tornado部署與執行
執行多個tornado例項 網頁響應不是特別的計算密集型處理 多個例項充分利用 cpu 多埠怎麼處理 4.安裝 注意看是否需要指定使用python2版本 sudo pip2 install supervisor 安裝完之後先啟動 sudo supervisordecho supervisord co...
nodejs安裝部署與執行
wget2 解壓到合適的目錄 譬如root目錄 建立軟連線。tar xf node v10.13.0 linux x64.tar.xz ln s root node v10.13.0 linux x64 bin node usr local bin node ln s root node v10.1...
Tornado部署時那些奇怪的錯誤
在python main.py 無錯誤資訊時,使用 nohup python main.py 時卻出現 錯誤 ascii codec can t encode characters in position 20 23 ordinal not in range 128 其實是因為在將log資訊輸出到n...