【Centos】【Python】【Flask】阿里雲上部署一個 flask 項目


1、 安裝 python3 和 pip3

參考:http://www.cnblogs.com/mqxs/p/8692870.html

2、安裝 lnmpa 集成開發環境

參考:http://www.cnblogs.com/mqxs/p/8706353.html

3、gunicorn安裝

參考資料: gunicorn

pip install gunicorn

4、flask 安裝

參考資料: flask

pip install flask
pip install virtualenv

5、virtualenv 使用

參考資料: virtualenv

$ mkdir myproject
$ cd myproject
$ virtualenv venv
$ . venv/bin/activate

6、從倉庫下載 flask 工程文件

1.git 操作, 當然也可以直接用filezila 將工程傳遞上去

  注意這里需要同時安裝 工程相關的依賴插件 flask-login 之類的 

2.需要特別注意的是, 使用 pip install xxx 和 sudo pip install xxx 的效果是不一樣的, 由於我們最終使用sudo運行, 因此, 這里所有依賴的插件都應該使用 sudo pip 進行安裝, 否則運行錯誤 

這里寫圖片描述
這里寫圖片描述

 7、運行工程項目

helloworld.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()
gunicorn -w 3 -b 127.0.0.1:8000 helloworld:app

1.這里使用gunicorn 啟動工程

2.這里說明一下: 
- D 表示后台運行 (PS.我試了加了-D就啟動失敗了,原因未知)
- w 表示有3 個 工作線程(感覺有些類似 nginx 的 master-worker 模型) 
- b 指定ip 和端口 
- 這里采用本機訪問, 主要是為了使用nginx 進行代理, 方便管理 
- application 表存放 寫着全局變量 app 的那個工程文件
- 在我們的這個工程中, 即包含 init.py 的那個文件 
- app 為全局變量 (app = Flask(__name__)) 
- ps: 在下面圖示文件夾中運行 gunicorn 指令 

到達這一步,你可以在本機的瀏覽器上訪問127.0.0.1:8000,瀏覽器上就會出現Hello World!

注意:如果是想通過外網訪問的話就要把ip改為內網的ip,外網直接用外網ip登陸即可。

還有一點要注意的,如果外網無法連接(當時一直以為部署失敗了),需要去阿里雲那邊修改安全組配置,修改配置規則,將自己的端口加入,才可以外網訪問。

如下圖:

3.參考資料: Docs » Running Gunicorn 
這里寫圖片描述

8、 配置nginx 服務器腳本

1.安裝完的nginx 在 /usr/local/nginx 目錄下, 我們可以找到conf文件夾下的 nginx.conf 文件, 將其修改

 這里寫圖片描述

2.添加nginx 需要監聽的端口信息

server {
    listen 8001;
    server_name instagram.zhyh2010.com;
    location /{
        proxy_pass http://127.0.0.1:8000;
    }
}

實際上, 我們將外部通過 8001 端口發送過來的請求, 代理給了 127.0.0.1:8000 也就是我們的 flask 項目

這里寫圖片描述

記得完成 nginx 需要重新起動 nginx 服務喔!

sudo service nginx restart

9、防火牆設置

1. 參考資料:

解決 RHEL 7/ CentOS 7/Fedora 出現Unit iptables.service failed to load

centOS防火牆中端口的開啟和關閉

linux 中防火牆配置 iptables 命令參數的含義介紹

2.防火牆設置信息 

這里寫圖片描述

1.可以看到 我們的8000, 8001 端口都是開放的, 但是 8000 端口上沒有程序監聽 (我們的程序只監聽本機的 8000 端口)

而 8001 端口是通過 nginx 監聽的。

2.端口監聽信息 

這里寫圖片描述

 

參考原文:https://blog.csdn.net/zhyh1435589631/article/details/51946439

 


免責聲明!

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



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