ubuntu部署 nginx+uwsgi+falsk+python3

關於 uWSGI,WSGI 是一個 Python 協議,定義了應用程序(我們寫的軟件)如何與 Web 服務器(如 Nginx )通信,WSGI 只是一個接口。而 uWSGI 是一個支持多種語言的服務器容器,使用 WSGI 定義的標準實現與多種 Web 服務器的通信,並將 Web 服務器發來的請求“翻譯”成應用程序所能理解形式。

安裝(下邊所有安裝儘量在root權限下執行,其他用戶在虛擬環境中存在權限問題)

Python 3:

apt-get update
apt-get install python3-pip

安裝依賴:

apt-get install build-essential libssl-dev libffi-dev python-dev

安裝python虛擬環境:

pip3 install virtualenv  //安裝虛擬環境

運行虛擬環境(虛擬環境中不要使用sudo,sudo會將python包安裝到虛擬環境外,進入虛擬環境中,只存在pip):

mkdir -p /opt/deploy/flask //創建工程目錄

cd /opt/deploy/flask

virtualenv venv //創建虛擬環境

. venv/bin/activate //運行虛擬環境,出現(venv)代表進入虛擬環境  ps: deactivate (退出)

pip install flask //安裝flask

pip install uwsgi //安裝uwsgi

創建一個單頁面應用:

index.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "test success!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

run.py

from index import app

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

編寫uwsgi配置文件:

run.ini

[uwsgi]
module = run:app
master = true
processes = 3

chdir = /opt/deploy/flask
socket = /opt/deploy/flask/flask.sock
logto = /opt/deploy/flask/log/run.log
chmod-socket = 755
vacuum = true

uid=www-data
gid=www-data

#http-socket=0.0.0.0:5000   //需要直接訪問時打開,使用nginx做代理訪問時關閉
uwsgi --ini run.ini  //啓動uwsgi

安裝nginx:

apt-get install nginx

配置nginx:

cd /etc/nginx/sites-available

touch falsk.com

  

server {
	listen 80;

	index index.html index.htm index.nginx-debian.html;

	server_name flask.biihu.com.cn;

	location / {
		include uwsgi_params;
        	uwsgi_pass unix:/opt/deploy/flask/flask.sock;
		try_files $uri $uri/ =404;
	}

}

ps:falsk.sock 可能存在權限問題

打開瀏覽器,訪問 http://flask.biihu.com.cn,出現:

test success!

說明部署完成

 

 

後續會更新uwsgi系統啓動,jenkins自動化部署flask項目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章