- 系統版本:centos7.1
- python版本:3.6
- sqlite版本:3.7
- django版本:2.1
- uwsgi版本:2.0.17
本文前提說明:html
- 一、安裝uwsgi以前 python3 和 Django2.1 環境已經部署完成
- 二、已經安裝過sqlite或其它數據庫,進入python3可用正常引用模塊 import sll
- 三、uwsgi配置文件格式 ini、xml、json 均可,本文以經常使用的ini配置格式爲例
詳細配置參數和變量可參考博文《uwsgi配置詳解》或官方配置文檔python
安裝uwsgi[python2或未定義的請用pip命令安裝]nginx
pip3 install uwsgi
查看uwsgi版本sql
uwsgi --version 2.0.17.1
爲方便使用,建立uwsgi軟鏈接數據庫
ln -s /usr/local/python36/bin/uwsgi /usr/bin/uwsgi
建立 test.py 測試文件,該uwsgi測試文件在python3中執行不顯示django
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) # return "Hello World" # 注:python2使用 return [b"Hello World"] # 注:python3使用
運行 uwgi 服務測試json
uwsgi --http :8001 --wsgi-file test.py
【結果】centos
輸入 http://IP:8001 頁面顯示 Hello World 爲服務正常運行
==備註說明:因部署環境版本不一樣可能輸出不了 Hello World 但服務能夠正常運行,訪問無報錯信息便可。此服務測試僅作參考==app
具體配置參數可參考官方文檔或博文《UWSGI配置詳解》socket
==ini方法是較經常使用的配置方式==
建立 uwsgi.ini 配置文件,通常存放在在django項目下
[uwsgi] #自定義變量 projectname = MyDjango base = /www/DjangoProject/MyDjango # 啓動uwsgi的用戶名和用戶組 uid = www gid = www # 個人項目目錄 chdir = %(base) # 指定項目的application module = %(projectname).wsgi:application # 進程個數 workers = 5 # 啓用主進程 master = true # 自動移除unix Socket和pid文件當服務中止的時候 vacuum = true # 序列化接受的內容,若是可能的話 thunder-lock = true # 啓用線程 enable-threads = true # 設置自中斷時間 harakiri = 30 # 設置緩衝 post-buffering = 4096 #pid文件保存路徑 pidfile = /tmp/uwsgi.pid # 設置日誌目錄 daemonize = /tmp/uwsgi.log # 指定sock的文件路徑,能夠用端口或sock文件 #socket = 192.168.88.20:8099 socket = /tmp/uwsgi.sock
setting
DEBUG = False ALLOWED_HOSTS = ['www.test.com','127.0.0.1','192.168.88.88','localhost'] 或 ALLOWED_HOSTS = ['*']
添加nginx虛擬主機配置
server { listen 80; server_name www.test.com; charset utf-8; location / { include uwsgi_params; include mime.types; uwsgi_pass unix:/tmp/uwsgi.sock; } location /static/ { alias /www/DjangoProject/MyDjango/APP/templates/; } error_log /www/wwwlogs/www.test.com.error.log; access_log /www/wwwlogs/www.test.com.access.log; }
配置完成後啓動服務加載配置
uwsgi --ini uwsgi.ini
重載uwsgi配置文件
uwsgi --reload /tmp/uwsgi.pid
中止uwsgi服務
uwsgi --stop /tmp/uwsgi.pid