Python uWSGI 安裝配置

主要介紹如何部署簡單的 WSGI 應用和常見的 Web 框架。

Python uWSGI 安裝配置Python uWSGI 安裝配置
以 Ubuntu/Debian 爲例,先安裝依賴包:html

apt-get install build-essential python-dev

Python 安裝 uWSGIpython

一、經過 pip 命令linux

pip install uwsgi

二、下載安裝腳本nginx

curl http://uwsgi.it/install | bash -s default /tmp/uwsgi

將 uWSGI 二進制安裝到 /tmp/uwsgi ,你能夠修改它。git

三、源代碼安裝:web

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
make

安裝完成後,在當前目錄下,你會得到一個 uwsgi 二進制文件。flask

第一個 WSGI 應用bash

讓咱們從一個簡單的 "Hello World" 開始,建立文件 foobar.py,代碼以下:服務器

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

uWSGI Python 加載器將會搜索的默認函數 application 。併發

接下來咱們啓動 uWSGI 來運行一個 HTTP 服務器,將程序部署在HTTP端口 9090 上:

uwsgi --http :9090 --wsgi-file foobar.py

添加併發和監控

默認狀況下,uWSGI 啓動一個單一的進程和一個單一的線程。

你能夠用 --processes 選項添加更多的進程,或者使用 --threads 選項添加更多的線程 ,也能夠二者同時使用。

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2

以上命令將會生成 4 個進程, 每一個進程有 2 個線程。

若是你要執行監控任務,可使用 stats 子系統,監控的數據格式是 JSON:

uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

咱們能夠安裝 uwsgitop(相似 Linux top 命令) 來查看監控數據:

pip install uwsgitop

結合 Web 服務器使用

咱們能夠將 uWSGI 和 Nginx Web 服務器結合使用,實現更高的併發性能。

一個經常使用的nginx配置以下:

location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:3031;
}

以上代碼表示使用 nginx 接收的 Web 請求傳遞給端口爲 3031 的 uWSGI 服務來處理。

如今,咱們能夠生成 uWSGI 來本地使用 uwsgi 協議:

uwsgi --socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

若是你的 Web 服務器使用 HTTP,那麼你必須告訴 uWSGI 本地使用 http 協議 (這與會本身生成一個代理的–http不一樣):

uwsgi --http-socket 127.0.0.1:3031 --wsgi-file foobar.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

部署 Django

Django 是最常使用的 Python web 框架,假設 Django 項目位於 /home/foobar/myproject:

uwsgi --socket 127.0.0.1:3031 --chdir /home/foobar/myproject/ --wsgi-file myproject/wsgi.py --master --processes 4 --threads 2 --stats 127.0.0.1:9191

--chdir 用於指定項目路徑。

咱們能夠把以上的命令弄成一個 yourfile.ini 配置文件:

[uwsgi]
socket = 127.0.0.1:3031
chdir = /home/foobar/myproject/
wsgi-file = myproject/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191

接下來你只須要執行如下命令便可:

uwsgi yourfile.ini

部署 Flask

Flask 是一個流行的 Python web 框架。

建立文件 myflaskapp.py ,代碼以下:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "I am app 1"

執行如下命令:

uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191

本文原創地址:https://www.linuxprobe.com/python-uwsgi-installation.html

相關文章
相關標籤/搜索