Django+uwsgi+nginx
阿新 • • 發佈:2021-12-14
1. 安裝uwsgi
執行命令: pip3 install uwsgi
2. 配置uwsgi檔案(django專案的主目錄下新建uwsgi.ini)
[uwsgi] # 指定ip(內網ip) # http = 172.18.64.217:8000 # 專案虛擬環境(使用python的虛擬環境時需要配置) virtualenv=/root/tester_site/venv #(內網ip,與nginx的ip要保持一致) socket = 172.18.64.217:4589 # django 專案路徑(資料夾下存在manage.py) chdir = /root/.jenkins/workspace/tester_site/mysite # 主APP路徑,即存在wsgi.py檔案的檔案路徑 wsgi-file= mysite/wsgi.py module = mysite.wsgi:application #啟用主執行緒 master = true # 最大程序數(cpu) processes = 4 # 程序個數 workers = 5 # 啟用執行緒 enable-threads=true # 最大執行緒數 threads = 10 #序列化接受的內容,如果可能的話 thunder-lock=true #設定自中斷時間 harakiri=60 # 監控(uwsgi stats服務 #stats = 47.52.31.161:9000 # 設定快取 post-buffering=4096 # 清理環境(自動移除unix Socket和pid檔案當服務停止的時候) vacuum= true # log daemonize = /root/.jenkins/workspace/tester_site/mysite/logs/uwsgi.log # sock檔案存放目錄,方便nginx進行sock連線互動 #socket = /usr/local/py/Monster/testrunner/testrunner/logs/uwsgi.sock disable-logging = true #程序id存放檔案 pidfile = /root/.jenkins/workspace/tester_site/mysite/uwsgi.pid #靜態檔案對映,第一個是django別名,第二個是django的真實路徑 static-map=/static=/root/.jenkins/workspace/tester_site/mysite/static #檔案許可權 chmod-socket = 666 #最大請求數 max-requests = 5000 #使用使用者 uid=root #組 gid=root #使用utf-8 env LANG="zh_CN.UTF-8" env LANGUAGE="zh_CN.UTF-8"
3. 配置nginx
檢視nginx配置檔案路徑
nginx -t
在配置檔案的vhost路徑下新建django.conf配置檔案
/usr/local/nginx/conf/vhost/django.conf
server { listen 8000; #表示 Nginx 預設監聽的是80埠 index index.html index.htm index.nginx-debian.html; server_name 172.18.64.217; location / { include uwsgi_params; uwsgi_pass 172.18.64.217:4589; #這兩行引數表示和uwsgi 結合,而且這個埠號就是前面 uwsgi 開啟Django 專案的埠號,這是一個伺服器對內的埠號,80為對外的,收到請求後如果是動態路由,則轉發給這個端口的服務進行處理 uwsgi_read_timeout 60; } location /static { #這裡就是靜態檔案的配置 expires 30d; autoindex on; add_header Cache-Control private; alias /root/.jenkins/workspace/tester_site/mysite/static; #這裡是Django專案靜態檔案地址,也是請求服務以後,直接獲取的地址 } }
4. 啟用python的虛擬環境並進入到django專案所在目錄下執行uwsgi uwsgi.ini 啟動django專案
到此所有元件都配置完畢並完成django的啟動