Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比較常見的一種方式。
在這種方式中,我們的通常做法是,將nginx作為服務器最前端,它將接收WEB的所有請求,統一管理請求。nginx把所有靜態請求自己來處理(這是NGINX的強項)。然后,NGINX將所有非靜態請求通過uwsgi傳遞給Django,由Django來進行處理,從而完成一次WEB請求。
可見,uwsgi的作用就類似一個橋接器。起到橋梁的作用。
Linux的強項是用來做服務器,所以,下面的整個部署過程我們選擇在Ubuntu下完成。
一、安裝Nginx
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好。
Nginx同樣為當前非常流行的web服務器。利用其部署Django,我們在此也做簡單的介紹。
Nginx官網:http://nginx.org/
打開ubuntu控制臺(ctrl+alt+t)利用Ubuntu的倉庫安裝。
fnngj@ubuntu:~$ sudo apt-get install nginx #安裝
啟動Nginx:
fnngj@ubuntu:~$ /etc/init.d/nginx start #啟動fnngj@ubuntu:~$ /etc/init.d/nginx stop #關閉fnngj@ubuntu:~$ /etc/init.d/nginx restart #重啟
修改Nginx默認端口號,打開/etc/nginx/nginx.conf 文件,修改端口號。
server { listen 8088; # 修改端口號 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; }
大概在文件36行的位置,將默認的80端口號改成其它端口號,如 8088。因為默認的80端口號很容易被其它應用程序占用。
然后,通過上面命令重啟nginx。訪問:http://127.0.0.1:8088/
如果出現如上圖,說明Nginx啟動成功。
二、安裝uwsgi
通過pip安裝uwsgi。
root@ubuntu:/etc# python3 -m pip install uwsgi
測試uwsgi,創建test.py文件:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"]
新聞熱點
疑難解答