1. 程式人生 > >使用nginx,gunicorn快速部署flask到阿里雲伺服器

使用nginx,gunicorn快速部署flask到阿里雲伺服器

  1. 阿里雲esc中安裝python3,以下是安裝python3.6的詳細步驟
sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make 
sudo make install

Python3.6 檢視版本資訊,能看到表示安裝成功

2.阿里雲esc建立虛擬環境,python3可以直接建立虛擬環境,不需要安裝virtualenv

python3 -m venv flask_venv  #flask_venv是虛擬環境名字
source flask_venv/bin/activate   #啟用虛擬環境
  1. 一步安裝專案所有安裝包
#原專案終端,將所有包寫入requirements.txt
pip freeze > requirements.txt
#將requirements.txt 用WinSCP傳入虛擬環境下,並執行
pip3 install -r requirements.txt

4.建立/var/www資料夾並匯入專案檔案

mkdir -p /var/www/
#使用WinSCP 將專案放入該資料夾下
  1. 安裝nginx,gunicorn
apt-get install nginx    #直接安裝,不需要編譯安裝
pip3 install gunicorn
  1. 配置nginx ,編譯安裝的nginx配置與此略不同,相對複雜一次,不在此贅述
cd /etc/nginx/sites_available
cp default default_copy     #備份default

vim default  
#寫入如下
server {
        listen 80;
        server_name www.pygod.net;     #此為老鐵的域名
        location / {
                proxy_pass http://127.0.0.1:8000; # 這裡是指向 gunicorn host 的服務地址
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
  1. 配置hosts檔案
vim /etc/hosts
#新增一行程式碼
127.0.0.1 www.pygod.net
  1. cd到專案根目錄下使用gunicorn執行專案,大功告成,是不是非常簡單呢!
gunicorn -D -w 3 -b 127.0.0.1:8000 manage:app
# -D 是後臺執行,不寫-D可檢視執行資訊!不要放到-b 與 127.0...之間
#注意阿里雲安全組中開啟8000埠