在阿里雲上部署一個 flask 項目


部署flask hello world到阿里雲服務器

在阿里雲上部署flask項目,需要三步:
    1.配置阿里雲
    2.配置gunicorn
    3.配置nginx
 
 

阿里雲的配置

基於centos-7.4系統(阿里雲實例),使用 Gunicorn + Nginx 進行布署,雲服務器為阿里雲
你的阿里雲服務器會有一個實例,需要做一些配置
登錄阿里雲
如果忘了你的密碼或者用戶名,就給阿里雲的客服打電話吧,他會給你安排的明明白白的。
點擊控制台
找到你的實例(如果你之前買好了,注意你在哪個區)
配置安全組
我們部署的時候,nginx會用到80端口,gunicorn會用到5000端口,所以需要提前配置一下
按照這個格式把80和5000端口配置好

在自己的虛擬機上搭建一個小項目

工程項目代碼
helloworld.py
from flask import Flask
 
app = Flask(__name__)
 
@app.route('/')
def index():
    return 'hello world'
 
if __name__ == '__main__':
    app.run()

 

gunicorn

搭建好以后跑一下,沒問題的話就可以。但是這是基於falsk自帶的web服務器,所以在阿里雲上要用gunicorn來代替,它能讓你的程序跑起來。
安裝
pip install gunicorn
       使用gunicorn 啟動工程
 
        通過命令行啟動它
 
gunicorn -w worker數量 -b ip:端口號 運行文件名:flask實例名
例:
gunicorn -w 3 -b 127.0.0.1:5000 helloworld:app
 
 
這里說明一下
后台運行
gunicorn -D -w 3 -b 127.0.0.1:5000 helloworld:app
gunicorn命令的參數:
- D 表示后台運行
- w 表示有3 個 工作線程(感覺有些類似 nginx 的 master-worker 模型)
- b 指定ip 和端口
- 這里采用本機訪問, 主要是為了使用nginx 進行代理, 方便管理
- application 表存放 寫着全局變量 app 的那個工程文件夾
- 在我們的這個工程中, 即包含 init.py 的那個文件
- app 為全局變量 (app = Flask(__name__))
- ps: 在下面圖示文件夾中運行 gunicorn 指令
 
 
到達這一步,可以在linux服務器本地上訪問(127.0.0.1:8000)
注意:如果想通過本地Windows訪問的話,還需安裝nginx,把ip改為阿里雲的公網的ip.
 

nginx

詳細流程參考 https://www.runoob.com/linux/nginx-install-setup.html
nginx安裝
cd /usr/local/src
wget http://nginx.org/download/nginx-1.1.10.tar.gz
tar -zxvf nginx-1.1.10.tar.gz
cd nginx-1.1.10
./configure
make
make install
nginx配置
1.安裝完的nginx 在 /usr/local/nginx 目錄下, 我們可以找到conf文件夾下的 nginx.conf 文件, 將其修改
 
2.添加nginx 需要監聽的端口信息
server {
    listen 8001;
    server_name localhost;
    location /{
        proxy_pass http://127.0.0.1:5000; }
    }
 
 
實際上, 我們將外部通過 8088 端口發送過來的請求, 代理給了 127.0.0.1:5000 也就是我們的 flask 項目
部署項目時 請求流程
Client <===> Nginx <===> gunicorn <===> Flask服務
記得修改完配置文件,需要重新載入配置文件!!!
檢查配置文件nginx.conf是否正確
$ /usr/local/nginx/sbin/nginx -t
啟動nginx
$ /usr/local/nginx/sbin/nginx
nginx其他命令
$ /usr/local/nginx/sbin/nginx -s reload # 重新載入配置文件
$ /usr/local/nginx/sbin/nginx -s reopen # 重啟nginx
$ /usr/local/nginx/sbin/nginx -s stop # 停止nginx
nginx快速停止
$ ps -ef | grep nginx #查看進程號
$ kill -9 25276 #殺死進程
$ pkill -9 nginx # 強制停止
小結
 
將要部署的項目上傳至服務器,安裝gunicorn,開啟gunicorn,在服務器本地上調通url。然后在阿里雲上安裝nginx,編輯配置文件,
開啟nginx,通過公網ip訪問一下看看是否成功。
 
快速開啟服務樣例
開啟gunicorn
 
#在啟動腳本所在路徑下
cd /root/homework/flask_test
gunicorn -D -w 3 -b 127.0.0.1:5000 api_server:app
 
開啟nginx
 
#在/usr/local/nginx路徑下
sbin/nginx
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM