從零開始部署flask專案
- 概要
- 準備作業
- 服務器
- Xshell
- Xftp 7
- 部署flask
- 方案選擇
- python3安裝
- 安裝uwsgi
- 安裝nginx
- nginx和uwsgi的配置
- 配置nginx
- 配置uwsgi
- 部署成功
概要
本次專案我利用flask寫了介面需要部署到服務器供前端使用,一路走來爬了很多坑,所以這一次做了詳細的記錄,從零開始教大家將flask專案跑起來
準備作業
服務器
首先部署需要一臺服務器,推薦大家使用騰訊云或者阿里云的服務器,我這里使用的是centos7.5版本的阿里云服務器,然后設定安全組資訊,我這里開放了一個5656埠

Xshell
還需要一個模擬服務器終端的連接軟體方便操作,我使用的是Xshell,大家可以自行去下載,網上資源很多,然后打開軟體新建鏈接連接服務器,如圖所示狀態,輸入指令可以查看服務器檔案,就算連接成功啦

Xftp 7
為了傳輸檔案方便,我這里使用的是Xftp7,可以直接拖動檔案上傳到服務器,大家自己下載,可視化軟體很多選擇順手的即可
部署flask
方案選擇
我才用的是nginx+uwsgi+flaks的部署方案,這里也是給大家詳細介紹這一種,下面我們開始進行部署
python3安裝
要編譯flask檔案當然要在服務器內進行python的配置
which python
mkdir /usr/local/python3
cd /usr/local/python3
安裝依賴
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
安裝python3
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
這種方式可能比較慢,大家也可以自行在上面網址下載安裝包,然后上傳安裝包到服務器
解壓壓縮包
tar -xvJf Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install
創建軟鏈接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
此時在服務器輸入python3,出現如下代表安裝成功,輸入exit()回車 退出
## flask
將要運行的flask檔案放置root檔案夾下
安裝flask,進入目錄,運行檔案
pip3 install flask
cd /root/firstdemo
python3 app.py
運行成功后,然后通過服務器公網訪問,如圖,輸入 ctrl+c 可停止運行,到此表示服務器python編譯環境安裝成功

安裝uwsgi
安裝
pip3 install uwsgi
find / -name uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
安裝nginx
安裝nginx的詳細步驟見我的另一篇文章,點我查看,
nginx和uwsgi的配置
配置nginx
至此我默認大家已經完成了nginx的安裝,下面進行nginx 的配置
進入到nginx目錄下的conf檔案夾
/usr/local/nginx/conf
可以看到有一個叫 nginx.conf 的組態檔,在里面進行相關的檔案配置
檔案里面默認的代碼很多,下面我將我的配置精簡如下:
worker_processes 4;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server {
listen 80; // 監聽的埠,默認為80埠
server_name 47.108.xxx.180; // 這里寫服務器公網ip
location / {
proxy_pass http://127.0.0.1:5000;
// 需要代理的地址,我的專案啟動地址是這個
}
}
}
弄好組態檔然后就可以啟動nginx了,nginx的啟動停止的操作在 點我查看 一文中有說明,
配置uwsgi
下面開始配置uwsgi相關的東西,首先進入我們的專案檔案夾
在專案檔案夾中創建一個名為 uwsgi.ini 的檔案
cd /root/firstdemo //進入專案檔案夾
vi uwsgi.ini //輸入就自動創建了檔案并進入了編輯模式
也可以直接用可視化工具操作
下面開始配置uwsgi檔案,附上我的檔案資訊,關鍵資訊寫了注釋,其他的根據需求配置,自行去查看作用,此處不作詳解
[uwsgi]
http-socket = 127.0.0.1:5000 // 啟動地址
chdir = /root/firstdemo // 專案地址
wsgi-file = app.py // 專案的啟動檔案
callable = app
processes = 2
threads = 10
buffer-size = 32768
master = true
daemonize=flaskweb.log // 日志檔案保存在falskweb.log中
pidfile=uwsgi.pid
配置完成之后,在專案的根目錄下就可以啟動 uwsgi 了,下面附上uwsgi的相關操作指令
uwsgi --ini uwsgi.ini // 啟動
uwsgi --reload uwsgi.pid // 重啟
進入目錄,輸入指令啟動uwsgi,如下代表啟動成功

部署成功
啟動成功后,我們就可以用瀏覽器通過服務器公網訪問啦
因為前面nginx配置中我們直接把啟動地址放在了 location/ 中,也就是將127.0.0.1:5000直接轉發到了公網ip,所以可以直接訪問:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/293569.html
標籤:其他
