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’]
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)
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檔案。