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部署
- uWSGI可以進行多線程調度,進程監控
- 提供完善的請求日志處理
- runserver 性能差
為什么有了uwsgi還要使用nginx
- nginx提供了更加安全的服務保障
- 提供反向代理,負載均衡等功能
- 對於靜態文件處理能力強
nginx配置步驟
-
uwsgi啟動django應用服務
-
修改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設置軟連接
-
收集靜態文件,完成靜態文件尋址配置
設置好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端口的訪問。