阿里雲部署 Flask + uWSGI + Nginx

1、引言

  今天入手了一臺阿里雲服務器,是centeros 7.5版本。本文解決的是 Flask 的部署問題。假設你的Flask的應用已經完成,如今只是部署的問題,本文以部署個人二次開發微信訂閱號的項目(項目代碼參考:http://www.javashuo.com/article/p-vhfjqrge-eg.htmlhtml

  我採用的部署方案是:python

    - Web 服務器採用 uwsgi host Flask;nginx

    - 用 supervisor 引用 uwsgi 做常規啓動服務;flask

    - 基於 Nginx 做反向代理;服務器

  首先, 阿里雲服務器能夠經過 SSH 指令在本機的終端進行遠程鏈接微信

ssh root@雲服務器地址

  輸入密碼後可鏈接至雲服務器。app

2、安裝python三、安裝並配置虛擬環境

  參考博客:http://www.javashuo.com/article/p-aelxpavc-eh.htmlssh

3、在虛擬環境下安裝flask以及項目的其餘依賴

一、我是用清單文件一次性安裝Flask和他的相關依賴的,這樣會更快。個人引用清單(requirements.txt)內容以下: socket

certifi==2018.11.29
chardet==3.0.4
Click==7.0
Flask==1.0.2
Flask-Script==2.0.6
idna==2.8
itsdangerous==1.1.0
Jinja2==2.10
MarkupSafe==1.1.0
requests==2.21.0
SQLAlchemy==1.2.17
urllib3==1.24.1
Werkzeug==0.14.1

二、安裝清單文件中依賴的命令以下:網站

(wechatEnv) [root@wanglili my_flask]# pip3 install -r requirements.txt

  注意:必定要在運行這個安裝以前啓用了python 虛擬環境,不然會直接安裝到全局去的!

三、上傳 Flask的項目文件,整個項目文件結構以下:

/root/my_flask
        ├── app
        │   ├── __init__.py 
        │   ├── templates
        │   │       └── index.html
        │   └── views
        │         └── wx_demo.py
        ├── logs
        ├── manager.py
        ├── settings.py
        └── requirements.txt

4、安裝並配置uWSGI

  到此,項目的準備工做已經作完了,咱們接下來要安裝uWSGI,使用配置文件的方式啓動項目,步驟以下:

(wechatEnv) [root@wanglili my_flask]# pip3 install -i https://pypi.douban.com/simple uwsgi                # 安裝uwsgi
(wechatEnv) [root@wanglili my_flask]# touch uwsgi.ini             # 建立配置文件,寫入以下內容
[uwsgi]
# uwsgi 啓動時所使用的地址與端口
http-socket = 0.0.0.0:5000

# 指向網站目錄
chdir = /root/my_flask

# python 啓動程序文件
wsgi-file = manager.py

# python 程序內用以啓動的 application 變量名
callable = my_app

# 處理器數
processes = 4

# 線程數
threads = 2

# 狀態檢測地址
stats = 0.0.0.0:8000

  安裝完成後,使用命令啓動,驗證配置是否正確:

(wechatEnv) [root@wanglili my_flask]# uwsgi uwsgi.ini

5、安裝Nginx

一、安裝nginx,參考博客

二、nginx的配置

server {
        listen       80;
        # 配置成本身服務器的url地址
        server_name  39.xx.xx.130;

        ......

        location / { 
            # 配置nginx的反向代理功能,本身服務器的5000端口,由於接下來的項目使用flask,且將其運行在本身的服務器的5000端口
            proxy_pass  http://39.xx.xx.130:5000;  
            # root   html;
            # index  index.html index.htm;
        }

        ......
  }

6、安裝supervisor並配置

[root@wanglili my_flask]# easy_install supervisor       # 注意此時要退出虛擬環境執行
(wechatEnv) [root@wanglili my_flask]# echo_supervisord_conf > /etc/supervisor.conf      # 使用命令生成supervisor的配置文件
(wechatEnv) [root@wanglili my_flask]# vi /etc/supervisor.conf      # 編輯,在最後寫入以下內容
[program:my_flask]
# 啓動命令入口 command
=/root/Envs/wechatEnv/bin/uwsgi /root/my_flask/uwsgi.ini
# 命令程序所在目錄 directory
=/root/my_flask
# 運行命令的用戶 user
=root
autostart
=true autorestart=true
# 日誌地址 stdout_logfile
=/root/my_flask/logs/uwsgi_supervisor.log
(wechatEnv) [root@wanglili my_flask]# supervisord -c  /etc/supervisor.conf    # 啓動supervisord服務端,指定配置文件啓動
(wechatEnv) [root@wanglili my_flask]# supervisorctl -c  /etc/supervisor.conf    # 進入supervisor的交互模式,能夠啓動或者關閉服務
supervisor> start my_flask
相關文章
相關標籤/搜索