Django線上部署實戰教程之Nginx+Gunicorn+Django篇

#############################################html

 

推薦 nginx supervisor gunicorn  配置簡單,運維方便。python

Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。nginx

Gunicorn是一個unix上被普遍使用的高性能的Python WSGI UNIX HTTP Server。 和大多數的web框架兼容,並具備實現簡單,輕量級,高性能等特色。web

gunicorn 應用服務器的運行與 Nginx 反向代理django

Supervisor是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓。vim

supervisor 控制 gunicorn 服務器安全

 

 

#############################################服務器

1.先查看nginx配置是否正確 執行下面的命令: nginx -t   #查看nginx配置是否正確 也能夠切換到nginx的安裝目錄下的sbin目錄下,執行: ./nginx -t

2.查看nginx是否啓動成功 ps -ef | grep nginx  #查看nginx端口

netstat -ntpl |grep 3306
我先執行了1,2,發現nginx配置沒問題,且啓動成功了!那麼,我預感到是端口沒開放,由於用的是阿里雲的服務器,須要先配置安全組。 配置了安全組以後,就能夠訪問了,可是報錯 502 Bad Gateway nginx/1.10.3 (Ubuntu)

 

#############################################框架

Nginx配置地址: sudo vim /etc/nginx/sites-enabled/djangoblog.com.conf 日誌地址: access_log /var/log/nginx/django_access.log; error_log /var/log/nginx/django_error.log; 經過上面的鋪墊,咱們來看看如何動態監控日誌尾部,那就是使用命令:tail -f 文件名, 日誌報錯:

2020/02/21 23:15:53 [error] 3440#3440: *1 open() "/root/python//DjangoBlog/collectedstatic/static/CACHE/js/output.c71e77581f2f.js" failed (13: Permission denied), client: 119.80.137.248, server: 123.57.142.175, request: "GET /static/CACHE/js/output.c71e77581f2f.js HTTP/1.1", host: "123.57.142.175:8090", referrer: "http://123.57.142.175:8090/"運維

這個沒有權限的問題,須要修改Nginx的配置文件,把user改成root,

2020/02/21 21:04:15 [error] 761#761: *22 connect() failed (111: Connection refused) while connecting to upstream,
client: 139.224.238.50, server: 123.57.142.175, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "123.57.142.175"
這個問題,我是先啓動了gunicorn,而後莫名其妙就行了,

 

 

#############################################

靜態資源沒法加載出來,Nginx配置出了問題,

 

nginx的配置問題 配置 nginx 主要進行兩個文件的修改,兩個文件都在/etc/nginx 目錄下 一個是 nginx.conf,須要修改的內容爲: 將第一行定位用戶的名字改成你的用戶文字,個人是 root
第二個文件時 sites-available/sites-enable 目錄下的 default 文件

 

nginx指定文件路徑有兩種方式root和alias

nginx指定文件路徑有兩種方式root和alias,指令的使用方法和做用域: [root] 語法:root path 默認值:root html 配置段:http、server、location、if [alias] 語法:alias path 配置段:location root與alias主要區別在於nginx如何解釋location後面的uri,這會使二者分別以不一樣的方式將請求映射到服務器文件上。 root的處理結果是:root路徑+location路徑 alias的處理結果是:使用alias路徑替換location路徑 alias是一個目錄別名的定義,root則是最上層目錄的定義。 還有一個重要的區別是alias後面必需要用「/」結束,不然會找不到文件的。。。而root則無關緊要~~

 

#############################################

 

#############################################

相關文章
相關標籤/搜索