部署
知識點
supervisor配置與使用
nginx配置
1. supervisor
為了統一管理Tornado的多個進程,我們可以借助supervisor工具。
安裝
sudo pip install supervisor
配置
運行echo_supervisord_conf命令輸出默認的配置項,可以如下操作將默認配置保存到文件中
echo_supervisord_conf > supervisord.conf
vim 打開編輯supervisord.conf文件,修改
[include] files = relative/directory/*.ini
為
[include] files = /etc/supervisor/*.conf
include選項指明包含的其他配置文件。
將編輯后的supervisord.conf文件復制到/etc/目錄下
sudo cp supervisord.conf /etc/
然后我們在/etc目錄下新建子目錄supervisor(與配置文件里的選項相同),并在/etc/supervisor/中新建tornado管理的配置文件tornado.conf。
[group:tornadoes] programs=tornado-8000,tornado-8001,tornado-8002,tornado-8003 [program:tornado-8000] command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat /server.py --port=8000 directory=/home/python/Documents/demo/chat user=python autorestart=true redirect_stderr=true stdout_logfile=/home/python/tornado.log loglevel=info [program:tornado-8001] command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat /server.py --port=8001 directory=/home/python/Documents/demo/chat user=python autorestart=true redirect_stderr=true stdout_logfile=/home/python/tornado.log loglevel=info [program:tornado-8002] command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat /server.py --port=8002 directory=/home/python/Documents/demo/chat user=python autorestart=true redirect_stderr=true stdout_logfile=/home/python/tornado.log loglevel=info [program:tornado-8003] command=/home/python/.virtualenvs/tornado_py2/bin/python /home/python/Documents/demo/chat /server.py --port=8003 directory=/home/python/Documents/demo/chat user=python autorestart=true redirect_stderr=true stdout_logfile=/home/python/tornado.log loglevel=info
啟動
supervisord -c /etc/supervisord.conf
查看 supervisord 是否在運行:
ps aux | grep supervisord
supervisorctl
我們可以利用supervisorctl來管理supervisor。
supervisorctl > status # 查看程序狀態 > stop tornadoes:* # 關閉 tornadoes組 程序 > start tornadoes:* # 啟動 tornadoes組 程序 > restart tornadoes:* # 重啟 tornadoes組 程序 > update # 重啟配置文件修改過的程序
執行status命令時,顯示如下信息說明tornado程序運行正常:
supervisor> status tornadoes:tornado-8000 RUNNING pid 32091, uptime 00:00:02 tornadoes:tornado-8001 RUNNING pid 32092, uptime 00:00:02 tornadoes:tornado-8002 RUNNING pid 32093, uptime 00:00:02 tornadoes:tornado-8003 RUNNING pid 32094, uptime 00:00:02
2. nginx
對于使用ubuntu apt-get 安裝nginx,其配置文件位于/etc/nginx/sites-available中,修改default文件如下:
upstream tornadoes {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
upstream websocket {
server 127.0.0.1:8000;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location /static/ {
root /home/python/Documents/demo/chat;
if ($query_string) {
expires max;
}
}
location /chat {
proxy_pass http://websocket/chat;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme; # 協議 http https
proxy_pass http://tornadoes;
}
}
啟動nginx
service nginx start # 啟動 service nginx stop # 停止 service nginx restart # 重啟
源碼安裝版本
啟動:sudo sbin/nginx 停止:sudo sbin/nginx -s stop 重啟:sudo sbin/nginx -s reload
總結
- 上一篇: 设置网络打印机并设置密码
- 下一篇: 分享自己小说站小说收录历程