前段時間自己給部門內部做了一個小網站,主要用於統計一些企業信息。這個項目使用的是Flask框架去做的,這里簡單記錄一下項目部署的流程,中間可能有遺漏,主要防止自己時間久了忘記。
1.配置虛擬環境
1.1 pip3 install virtualenv
1.2 創建虛擬環境:virtualenv venv
1.3 激活虛擬環境:source venv/bin/activate
1.4 在虛擬環境中安裝flask,uwsgi庫:pip3 install flask; pip3 install uwsgi
(可能遇到的坑:缺少依賴:yum install -y python3-devel)
1.5 創建配置文件:touch uwsgi.ini
1.6 內容為:[uwsgi]
http = 192.168.126.128:5000
chdir = /home/flask_web
virtualenv =/home/flask_web/venv
wsgi-file = /home/flask_web/app.py
callable = app
#plugins = python
master = true
vacuum = true
chmod-socket = 664
processes = 5
daemonize = /home/flask_web//uwsgi.log
pidfile = /home/flask_web/uwsgi.pid
注:當利用nginx部署:
[uwsgi]
socket = 127.0.0.1:5000
chdir = /home/flask
virtualenv =/home/flask/venv
wsgi-file = /home/flask/app.py
callable = app
#plugins = python
master = true
vacuum = true
chmod-socket = 664
processes = 5
daemonize = /home/flask/uwsgi.log
pidfile = /home/flask/uwsgi.pid
nginx中配置:
server {
listen 80;
server_name 192.168.1.134;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
include /home/application/nginx/conf/uwsgi_params;
uwsgi_pass 0.0.0.0:5000;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
1.7 進入pycharm中Terminal將依賴庫版本導出: pip3 freeze > requirements.txt
1.8 在虛擬環境中安裝依賴庫:pip3 install -r requirements.txt
1.9 啟動 uwsgi.ini:uwsgi uwsgi.ini
(可能遇到的坑:ps -ef|grep uwsgi發現沒有進程,刪掉/home/flask_web/uwsgi/pid 再重新執行一遍 uwsgi uwsgi.ini)
2.0 將項目copy到/home/flask_web目錄下,並將.py文件賦權
2.1 啟動uwsgi.ini
2.2 ps -ef|grep uwsgi 查看進程是否啟動
2.3 重啟uwsgi: uwsgi --reload uwsgi.pid
2.4 停止: uwsgi --stop uwsgi.pid
2.5 啟動: uwsgi --ini uwsgi.ini