django的nginx配置


django

在引入第三方模塊的時候保證服務的高可用,要設立一個備份接口,當主接口宕機時可以設置一個超市參數來使用備份的接口。

nginx

  • 反向代理器,網站服務器,負載均衡

  • 基本命令

    • sudo nginx啟動
    • sudo nginx -s stop
    • sudo nginx -s quit
    • sudo nginx -s reopen
  • 關鍵配置模塊

    • events配置域:網絡連接相關配置(I/O模塊)
    • server配置域:相關服務節點配置
    • location
    • http配置域
    • upstream配置域:反向代理配置域
  • 層次關系

    events {
    	....
    }
    http {
    	...
    	upstream {
    		...
    	}
    	server {
    		...
    		location {
    			...
    		}
    	}
    }
    

WSGI協議:web server 和 web application通信的規范

uwsgi : webserver 接受客戶端的請求,傳送給 web application

web application :django flask tornado

django uwsgi部署

  1. uWSGI可以進行多線程調度,進程監控
  2. 提供完善的請求日志處理
  3. runserver 性能差

為什么有了uwsgi還要使用nginx

  • nginx提供了更加安全的服務保障
  • 提供反向代理,負載均衡等功能
  • 對於靜態文件處理能力強

nginx配置步驟

  1. uwsgi啟動django應用服務

  2. 修改nginx配置文件完成反向代理配置

    /etc/nginx/sites-available/nginx.conf備份

    upstream uwsgi {
    	server 127.0.0.1:8000;
    }
    
    server {
    	listen:80;
    	server_name: .xxxxx.com 無論一級域名還是二級域名
    	charset:utf-8;
    	
    	access_log # 可以配置日志文件
    	
    	location / {
    		proxy_pass http://uwsgi;   # 所有訪問域名的連接轉發到配置好的upstream 
    	}
    }
    

    刪除源/nginx.conf 給新配置的conf設置軟連接

  3. 收集靜態文件,完成靜態文件尋址配置

    設置好static_url 
    python manage.py collect
    

    拷貝生成的目錄

    server {
    	listen:80;
    	server_name: .xxxxx.com 無論一級域名還是二級域名
    	charset:utf-8;
    	
    	access_log # 可以配置日志文件
    	
    	location / {
    		proxy_pass http://uwsgi;   # 所有訪問域名的連接轉發到配置好的upstream 
    	}
    	
    	location /static {
    		alias 拷貝好的目錄
    	}
    }
    

    nginx -s reload

https部署,可以在騰訊雲申請個人域名免費https,配置好server中的certificate

負載均衡 反向代理upstream,配置權重,直接在每一個配置好的upstream中配置權重weight。關閉uwsgi端口的訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM