百度云服務器部署nginx + gunicorn + supervisor + flask

服務器配置

內(nèi)存:1G
CPU:1核
系統(tǒng):ubuntu

工具

Mac系統(tǒng),連接云服務器使用的工具 finalshell

下載nginx

使用 sudo apt-get install nginx命令安裝,安裝完成在瀏覽器輸入公網(wǎng)Ip地址是否安裝成功和公網(wǎng)IP是否能夠訪問。

安裝成功訪問界面

下載supervisor

使用 sudo apt-get install nginx命令安裝

下載virtualenv

使用 sudo pip install virtualenv命令安裝

配置開發(fā)環(huán)境

創(chuàng)建虛擬環(huán)境

切換到項目到目錄,創(chuàng)建項目的虛擬環(huán)境,使用命令 virtualenv venv
ps:venv 為虛擬環(huán)境的名字,可隨意命名

激活虛擬環(huán)境:使用命令source venv/bin/activate

激活成功路徑的變化

安裝依賴包(逐一安裝)

pip install flask
pip install gunicorn
也可以創(chuàng)建描述文件統(tǒng)一安裝: vim requirements.txt 文件內(nèi)容為:

文件內(nèi)容

使用命令統(tǒng)一安裝:pip install -r requirements.txt

創(chuàng)建測試項目test.py


from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'hello world'

if __name__ == '__main__':
    app.run()

使用gunicorn運行項目:gunicorn -b 0.0.0.0:8000 test:app
新建一個SSH遠程窗口 使用命令 curl http:localhost:8000 測試項目是否運行成功

配置nginx

切換到nginx目錄下,注意到兩個目錄
sites-enabled 生效 的nginx的配置
sites-available 可用的nginx 的配置,該文件目錄下的文件要生效必須在 sites-enabled 創(chuàng)建軟連接

image.png

在切換到sites-available 目錄下創(chuàng)建nginx配置vim test

test內(nèi)容

sites-enabled 創(chuàng)建軟鏈接:使用命令ln -s test ../sites-enabled

配置supervisor

在supervisor的conf.d目錄,創(chuàng)建配置文件

image.png
test配置

重啟nginx

sudo service nginx restart

啟動supervisor

supervisord -c supervisor.conf

配置restful https 訪問

安裝 pip install pyOpenSSL

創(chuàng)建CA證書

首先要有CA證書,由于這篇是示例教程,所以使用自簽證書即可。生成自簽證書可以參考這里:《在局域網(wǎng)里創(chuàng)建個人CA證書》。

程序開啟SSL

上面代碼是使用本機的證書,如果自定義證書路徑,可以改成下面的代碼。

image.png

修改supervisor 的text配置文件

為:

[program:test]
command = /home/workspaces/wheat/test/venv/bin/gunicorn -b localhost:8099 test:app --keyfile server/server-key.pem --certfile server/server-cert.pem

directory = /home/workspaces/wheat/test

修改 nginx 配置開啟SSL驗證

為:
ps : ### 表示所在的目錄

server{
   listen 8081;
   server_name 0.0.0.0;
 ssl on;
 ssl_certificate /###/server-cert.pem;
 ssl_certificate_key  /###/server-key.pem;

   location /{
       proxy_pass http://localhost:8099;
       proxy_redirect off;
   }

}

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容