動態請求:採用uwsgi與Django進行通訊處理動態業務。css
靜態請求:採用Ngins經過socket與uwsgi進行通訊處理靜態業務。html
[uwsgi] # 使用Nginx鏈接時使用,Django程序所在服務器地址 # socket=192.168.0.105:8001 # 直接作web服務器使用,Django程序所在服務器地址 http=192.168.0.105:8001 # 項目目錄 chdir=/home/python/Desktop/meiduo_rest/meiduo_mall # 項目中wsgi.py文件的目錄,相對於項目目錄 wsgi-file=meiduo_mall/wsgi.py # 進程數 processes=4 # 線程數 threads=2 # uwsgi服務器的角色 master=True # 存放進程編號的文件 pidfile=uwsgi.pid # 日誌文件 daemonize=uwsgi.log # 指定依賴的虛擬環境 virtualenv=/home/python/.virtualenvs/Py3_Django1.11
uwsgi:遵循wsgi協議的程序,須要使用http協議進行通訊。python
# 啓動 uwsgi --ini uwsgi.ini # 中止 uwsgi --stop uwsgi.pid
利用瀏覽器向配置文件中的HTTP屬性信息發送請求便可。nginx
經過瀏覽器發送請求,可以獲取到響應則表示uwsgi和Django程序可以正常進行通訊了。web
將uwsgi中的配置屬性HTTP註釋掉,啓用socket屬性。vim
[uwsgi] # 使用Nginx鏈接時使用,Django程序所在服務器地址 socket=192.168.0.105:8001 # 直接作web服務器使用,Django程序所在服務器地址 # http=192.168.0.105:8001 # 項目目錄 chdir=/home/python/Desktop/meiduo_rest/meiduo_mall # 項目中wsgi.py文件的目錄,相對於項目目錄 wsgi-file=meiduo_mall/wsgi.py # 進程數 processes=4 # 線程數 threads=2 # uwsgi服務器的角色 master=True # 存放進程編號的文件 pidfile=uwsgi.pid # 日誌文件 daemonize=uwsgi.log # 指定依賴的虛擬環境 virtualenv=/home/python/.virtualenvs/Py3_Django1.11
經過編寫Nginx的配置文件,實現Nginx與uwsgi進行通訊。瀏覽器
# 跳轉到配置文件目錄 cd /etc/nginx/sites-enabled/ # 建立一個配置文件 sudo vim meiduo
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { # 導入uwsgi使用的變量 include uwsgi_params; # 經過負載均衡設置uwsgi uwsgi_pass meiduo; }
測試並從新加載Nginx配置信息。服務器
# 測試 sudo nginx -t # 從新加載 sudo nginx -s reload
修改Nginx配置文件,便可實現。負載均衡
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { include uwsgi_params; uwsgi_pass meiduo; } location /static { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/; } }
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { include uwsgi_params; uwsgi_pass meiduo; } # 主頁靜態文件:css、js等 location /static { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/; } # 詳情頁面 location /detail { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/detail/; } }
upstream meiduo { server 192.168.0.105:8001; } server{ server_name www.meiduo.site; listen 80; location / { include uwsgi_params; uwsgi_pass meiduo; } # 首頁路由 location = /{ root /home/python/Desktop/meiduo_rest/meiduo_mall/static; index index.html; } # 首頁靜態化 location = /index.html{ root /home/python/Desktop/meiduo_rest/meiduo_mall/static; index index.html; } # 主頁靜態文件:css、js等 location /static { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/; } # 詳情頁面 location /detail { alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/detail/; } }
首頁靜態化配置,能夠理解爲當用戶在瀏覽器輸入www.meiduo.site時,瀏覽器會自動在url後拼接一個/,socket
Nginx進行路由匹配後,會將http://www.meiduo.site/地址,修改爲http://www.meiduo.site/index.html地址並進行請求。
原文出處:https://www.cnblogs.com/chao666/p/12344835.html