pip install gunicorn
pip 是一個重要的工具,python 用來管理包。還有一個最佳生產就是每次使用 pip 安裝的庫,都寫入一個 requirement 文件裏面,既能知道本身安裝了什麼庫,也方便別人部署時,安裝相應的庫。python
pip freeze > requirements.txt
之後每次 pip 安裝了新的庫的時候,都需freeze 一次。linux
當咱們安裝好 gunicorn 以後,須要用 gunicorn 啓動 flask,注意 flask 裏面的name裏面的代碼啓動了 app.run(),這個含義是用 flask 自帶的服務器啓動 app。這裏咱們使用了 gunicorn,myapp.py 就等同於一個庫文件,被 gunicorn 調用。nginx
gunicron -w4 -b0.0.0.0:8000 myapp:app
此時,咱們須要用 8000 的端口進行訪問,原先的5000並無啓用。其中 gunicorn 的部署中,,-w 表示開啓多少個 worker,-b 表示 gunicorn 開發的訪問地址。web
想要結束 gunicorn 只需執行 pkill gunicorn,有時候還的 ps 找到 pid 進程號才能 kill。但是這對於一個開發來講,太過於繁瑣,所以出現了另一個神器---supervisor
,一個專門用來管理進程的工具,還能夠管理系統的工具進程。flask
pip install supervisor echo_supervisord_conf > supervisor.conf # 生成 supervisor 默認配置文件 vim supervisor.conf # 修改 supervisor 配置文件,添加 gunicorn 進程管理
在myapp supervisor.conf 配置文件底部添加 (注意個人工做路徑是/home/rsj217/rsj217/
)vim
[program:myapp] command=/home/rsj217/rsj217/myproject/venv/bin/gunicorn -w4 -b0.0.0.0:2170 myapp:app ; supervisor啓動命令 directory=/home/rsj217/rsj217/myproject ; 項目的文件夾路徑 startsecs=0 ; 啓動時間 stopwaitsecs=0 ; 終止等待時間 autostart=false ; 是否自動啓動 autorestart=false ; 是否自動重啓 stdout_logfile=/home/rsj217/rsj217/myproject/log/gunicorn.log ; log 日誌 stderr_logfile=/home/rsj217/rsj217/myproject/log/gunicorn.err ; 錯誤日誌
supervisor的基本使用命令服務器
supervisord -c supervisor.conf 經過配置文件啓動supervisor supervisorctl -c supervisor.conf status 察看supervisor的狀態 supervisorctl -c supervisor.conf reload 從新載入 配置文件 supervisorctl -c supervisor.conf start [all]|[appname] 啓動指定/全部 supervisor管理的程序進程 supervisorctl -c supervisor.conf stop [all]|[appname] 關閉指定/全部 supervisor管理的程序進程
supervisor 還有一個web的管理界面,能夠激活。更改下配置app
[inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) username=user ; (default is no username (open server)) password=123 ; (default is no password (open server)) [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket username=user ; should be same as http_username if set password=123 ; should be same as http_password if set ;prompt=mysupervisor ; cmd line prompt (default "supervisor") ;history_file=~/.sc_history ; use readline history if available
如今可使用 supervsior 啓動 gunicorn啦。運行命令 supervisord -c supervisor.conf
socket
訪問 http://127.0.0.1:9001 能夠獲得 supervisor的web管理界面,訪問 http://127.0.0.1:2170 能夠看見gunciron 啓動的返回的 hello world工具
採用 apt-get方式安裝最簡單。運行 sudo apt-get install nginx
。安裝好的nginx的二進制文件放在 /usr/sbin/
文件夾下面。而nginx的配置文件放在 /etc/nginx
下面。
使用 supervisor 來管理 nginx。這裏須要注意一個問題,linux的權限問題。nginx是sudo的方式安裝,啓動的適合也是 root用戶,那麼咱們如今也須要用 root用戶啓動supervisor。增長下面的配置文件
[program:nginx] command=/usr/sbin/nginx startsecs=0 stopwaitsecs=0 autostart=false autorestart=false stdout_logfile=/home/rsj217/rsj217/myproject/log/nginx.log stderr_logfile=/home/rsj217/rsj217/myproject/log/nginx.err
到此爲止,進步的 web 部屬已經完成。固然,最終咱們須要把項目代碼部屬到服務器上.批量的自動化部屬須要另一個神器 fabric.具體使用,就再也不這篇筆記闡述。項目源碼中包含了fabric文件。下載fabric,更改裏面的用戶名和祕密,就能夠部屬在本身或者遠程的服務器上了。
做者:人世間連接:http://www.jianshu.com/p/be9dd421fb8d來源:簡書著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。