django uwsgi nginx 配置並啟動

2021-08-19 17:24:35 字數 2734 閱讀 9790

os: ubuntu 18.04 

django: 2.0.4

python:3.6

uwsgi: 2.0.17

nginx: 1.14.0

django 是後端框架, 主要進行的是邏輯處理 , 其自帶 wsgi伺服器(位置:project_name/wsgi.py),可用於除錯,但高併發情況無法達到要求。

uwsgi:也可以用作伺服器,比wsgi快很多,但是在實際環境中,主要和nginx一起使用,這時作為django 與 nginx 的中介軟體。

nginx:高效能反向**伺服器,對高併發支援得很好,可以直接響應**靜態檔案,不用經過後端邏輯處理,所謂反向**就是瀏覽器傳送的http 請求強制首先被nginx進行**,然後由nginx決定是否發給後台,可以均衡負載。

安裝:pip install django

啟動:django 專案必須可以啟動,python  manage.py  runserver  正常啟動後沒有問題

uwsgi:

安裝:pip install uwsgi

啟動命令:uwsgi  --http 127.0.0.1:8080  --file  專案名稱/wsgi.py

(http 是django 的url,file是django目錄下的wsgi.py檔案位置)

上面這個命令比較簡單,但是實際配置的時候經常由很多引數要寫,導致需要輸入乙個很長的命令。

所以我們編寫乙個配置檔案來代替,每次啟動只需要使用配置檔案啟動。

配置檔案:(可以放在任何位置 ,檔名隨意,字尾名.ini)

[uwsgi]

socket = 127.0.0.1:8080 //與nginx通訊的socket(一定要和nginx配置保持一致!!!)

chdir = /home/lihansen/pyproject/django/detection_server //django 專案的根目錄

module = detection_server.wsgi //django專案下的wsgi.py 模組,(這裡可以寫絕對路徑,也可以用python import 的方式)

processes = 2

threads = 4

master = true

buffer-size = 60000

vacuum = true

(複製後請把注釋刪除,防止出現不必要的錯誤)

啟動命令:uwsgi  --ini  檔名.ini

nginx:

安裝:sudo apt install  nginx

所以我們在這個目錄下編寫乙個檔案

server 

location /

}

語法可參考:

建立配置檔案後儲存

我們可以用 nginx  -t來測試配置檔案

完成配置後,我們輸入 service  nginx restart 來重新啟動

現在配置已經完成,開啟http: 就可以顯示出django 專案的主頁了!

(這時候的uwsgi伺服器一定是開啟狀態)

關閉nginx:

nginx  -s quit #網上的關閉命令通常不好用,**還能上去,我使用的是殺死master程序的方式

ps -ef | grep nginx   #檢視nginx所有的程序,檢視master 的程序pid

kill -quit pid    #殺死master程序的pid,nginx被完全關閉,再次輸入**url ,發現**已經被關閉

nginx常用命令:

終端輸入  nginx -h  檢視常用命令,like this:

root@648700565:/etc/nginx# nginx -h

nginx version: nginx/1.14.0 (ubuntu)

usage: nginx [-?hvvttq] [-s signal] [-c filename] [-p prefix] [-g directives]

options:

-?,-h         : this help

-v            : show version and exit

-v            : show version and configure options then exit

-t            : test configuration and exit

-t            : test configuration, dump it and exit

-q            : suppress non-error messages during configuration testing

-s signal     : send signal to a master process: stop, quit, reopen, reload

-p prefix     : set prefix path (default: /usr/share/nginx/)

-c filename   : set configuration file (default: /etc/nginx/nginx.conf)

-g directives : set global directives out of configuration file

nginx -c  filepath  #更改配置檔案的路徑

nginx -t  #測試

service nginx start #開啟

django uwsgi nginx配置伺服器

debug false 上線必須是false,此時靜態檔案全部失效 allowed hosts 允許任意ip訪問 靜態檔案交給nginx處理,配置靜態檔案的路徑 statci root var www 專案名 static static url static 靜態檔案的目錄配置保留 uwsgi 使用...

linux安裝redis並配置開機自啟

root vm01 local cd usr local root vm01 local tar zxvf redis 4.0.6.tar.gz 2 重新命名 個人習慣 root vm01 local mv redis 4.0.6 redis 3 進入解壓後的目錄,編譯安裝 root vm01 lo...

kali 配置 SSH 服務,並設定自啟

使用命令開啟ssh配置檔案 vim etc ssh sshd config如圖,將 permitrootlogin 改為 yes,去掉 permitrootlogin 和 strictmodes 前的注釋 執行命令,設定 ssh 開機自啟 update rc.d ssh enable重啟 kali ...