天天看點

Nginx反向代理動态業務(uwsgi)

1.準備生産環境配置檔案

複制開發環境配置檔案dev.py到生産環境配置檔案prod.py,并做修改。

#SECURITY WARNING: don’t run with debug turned on in production!

#DEBUG = True

DEBUG = False

ALLOWED_HOSTS = [‘www.xxxx.com’]

Nginx反向代理動态業務(uwsgi)

2.準備生産環境啟動檔案

生産環境我們是使用 項目名.wsgi.py 啟動服務的。

os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “項目名.settings.prod”)

3.安裝uwsgi包

Django的程式通常使用uwsgi伺服器來運作。

$ pip install uwsgi

4.準備uwsgi伺服器配置檔案

建立 項目名.uwsgi.ini配置檔案

[uwsgi]

以下二選一

① #使用Nginx連接配接時使用,Django程式所在伺服器位址

socket=172.16.21.25:8001

②#直接做web伺服器使用,Django程式所在伺服器位址

#http=172.16.21.25:8001

#項目目錄

chdir=項目路徑/meiduo_project/meiduo_mall

#項目中wsgi.py檔案的目錄,相對于項目目錄

wsgi-file=meiduo_mall/wsgi.py

#程序數

processes=4

#線程數

threads=2

#uwsgi伺服器的角色

master=True

#存放程序編号的檔案

pidfile=uwsgi.pid

#日志檔案

daemonize=uwsgi.log

#指定依賴的虛拟環境

路徑可以進入虛拟環境之後使用指令(whcih python)

Nginx反向代理動态業務(uwsgi)

virtualenv= /home/python/.virtualenvs/django_py3

5.管理uwsgi伺服器

#啟動

$ uwsgi --ini uwsgi.ini

#關閉

$ uwsgi --stop uwsgi.pid

#殺死程序

sudo kill -9 pid

#檢視狀态

sudo lsof -i:端口号

重載檔案方法

一:在預設設定下,uwsgi本身不會立即加載修改後的檔案,這是為了效率起見。如果你有修改代碼後需要立即在伺服器上reload的需求,則在uwsgi的ini檔案中加入如下修改(不建議):

py-autoreload = 1

二:手動重載uwsgi和代碼的方式

首先,確定你uwsgi的ini配置檔案有自動生成pidfile。

pidfile = /path/to/your/uwsgi.pid

然後,在你的uwsgi.pid的目錄下執行:

uwsgi --reload uwsgi.pid

#其中uwsgi.pid是我的uwsgi自動生成的檔案,即程序的pid檔案。

繼續閱讀