<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文主要介紹如何部署簡單的 WSGI 應用和常見的 Web 框架。
以 Ubuntu/Debian 為例,先安裝依賴包:
apt-get install build-essential python-dev
1、通過 pip 命令:
pip install uwsgi
2、下載安裝指令碼:
curl http://uwsgi.it/install | bash -s default /tmp/uwsgi
將 uWSGI 二進位制安裝到 /tmp/uwsgi ,你可以修改它。
3、原始碼安裝:
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar zxvf uwsgi-latest.tar.gz cd uwsgi-latest make
安裝完成後,在當前目錄下,你會獲得一個 uwsgi 二進位制檔案。
第一個 WSGI 應用
讓我們從一個簡單的 "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
我們可以將 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 是最常使用的 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 是一個流行的 Python web 框架。
建立檔案 myflaskapp.py ,程式碼如下:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "<span style='color:red'>I am app 1</span>"
執行以下命令:
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
到此這篇關於Python uWSGI 安裝設定的文章就介紹到這了,更多相關Python uWSGI 安裝設定內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45