Django服務器的部署(Nginx+uwsgi +Ubuntu)

概述

在本地開發好自己的一個Django項目之後,然後將其部署到服務器上面以便更多的人訪問。

前期準備

部署網站,需要服務器和域名。兩者缺一不可,我使用的阿里雲的ECS雲服務器,也是在阿里雲上購買的域名。對於域名,如果沒有特別用處的地方,可以自己根據自己的想法購買,名字之類的都可以,域名的後綴常見的是.com(公司),.org(組織),.gov(政府),.edu(教育),如果是作爲自己的博客這種,可以使用比較好記的、簡短的域名,比如io、xyz。總之域名是看自己的想法和項目的需求(做微信小程序的接口則需要.com的域名)。

對於服務器的選擇,常見的服務器可以分爲文件服務器、Web服務器、數據庫服務器、郵件服務器等,如果是用於部署個人的Web項目選擇Web服務器即可。然後考慮服務器的性能以及兼容性,在購買之前要確定要運行什麼,負載量有多大,這樣可以確定服務器的大概配置,包括CPU、內存、硬盤、帶寬等,如果自己的網站包含了一些比較大的視頻或者素材,那麼帶寬就必須要高一點兒,或者考慮第三方的服務,比如七牛雲或者阿里雲的對象雲存儲,可以快速訪問,輕鬆幫我們解決問題。另外也要考慮到服務器的售後,如果有什麼問題可以快速通過售後解決問題,這一點我覺得阿里雲做的比較好,24小時技術支持。而且解決問題得速度也比較快,所以我選擇的阿里雲。另外還有重要的一點,服務器的操作系統,如果對於Linux服務器不太熟悉的情況下,還是老實的選擇Windows系統,自己在部署和運維的時候比較方便,雖然大多數服務器都是採用的Linux,不熟悉用的時候就非常的不方便,什麼命令還要百度查一下。

Ubuntu部署

安裝Nginx。通過apt-get install nginx安裝nginx。在Ubuntu上安裝完Nginx之後,Nginx的所有配置文件都在/etc/nginx下,啓動程序文件都在/usr/sbin/nginx下;日誌文件在/var/log/nginx下,並且在/etc/init.d下創建了啓動腳本:

    sudo /etc/init.d/nginx start #啓動
    sudo /etc/init.d/nginx stop #停止
    sudo /etc/init.d/nginx restart #重啓

 

安裝UWSGI。通過apt-get install python-dev和pip install uwsgi安裝。這裏的大體流程是:Nginx作爲服務器的最前端,負責接收Client的所有請求,統一管理。靜態請求由Nginx自己處理。非靜態請求通過uwsgi傳遞給Django,由Django來進行處理,從而完成一次Web請求。

Nginx+Uwsig+Django

 

配置uwsgi文件。uwsgi文件是將Uwsgi啓動時的衆多參數以配置文件的方式,然後即可通過配置文件啓動uwsgi,而不用很長的命令去啓動(這個文件放在與django項目中manage.py同一級下)。

 

其中chdir是指Django項目的全路徑,socket是指django運行的端口號,module是指django創建時的uwsgi.py,即這裏是指向這個文件。

 

配置Nginx。打開/etc/nginx/sites-enabled目錄,並編輯nginx的配置文件default

以及靜態文件的配置

然後重啓Nginx服務以及UWSGI服務(uwsgi -d --ini uwsgi.ini)後臺運行UWSGI服務。

 

上面的訪問是指通過IP地址訪問能夠成功訪問,如要配置域名訪問,還需要在阿里雲或者騰訊雲上配置解析,包括域名的解析、安全組的配置、端口的設置等等然後纔可以通過域名正常訪問,如果需要HTTPS訪問還需要申請CA證書,然後配置HTTPS的相關配置,這些弄完項目纔算部署完成。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章