開發環境:ubuntu系統,python3環境
django項目目錄: fast_foot 為項目根目錄,app為項目應用

現在,我們登陸遠程服務器
安裝Nginx

安裝好了,我們看一下nginx的配置目錄

打開nginx.conf這個文件,可以看到以下代碼我們nginx配置他是包括了sites-enabled這個文件下的所有文件,所以我們只需在sites-enabled下增加一個我們自己的配置文件就可以使用了。

我們進入sites-enabled目錄,復制一份default名字為xxx,名字隨意。

然后我們進入我們剛復制的文件進行修改,我們只需修改server里面的內容即可,如下圖

然后保存退出,重啟一下nginx

nginx配置好了,我們可以運行一下我們的django項目

現在我們通過瀏覽器訪問http://fast-food.zengjielin.top/,結果來了個無法訪問

我們都知道瀏覽器默認的端口是80,我們現在用的是阿里雲服務器,還記得有個叫安全組的東西吧,好現在我們來配置一個安全組

然后我們重新訪問我們的網址http://fast-food.zengjielin.top/,發現有東西出來了

成功配好nginx,接下來我們來測試我們寫出來的接口
先看一下我寫的簡單的接口
fast-food/app/views.py

fast-food/app/urls.py是這樣的

在我們根目錄下的fast_food/fast_food/urls.py是這樣的

所以我們可以通過這樣來訪問我們的接口,不出意外會返回{'code': 0}
沒想到竟然報錯了

不急,我們可以看下報錯信息,我們可以看到紅色框框的信息,得知,我們缺少一個 HTTP_HOST header

現在我們只需修改fast_food/settinsg.py文件即可,內容如下,保存退出。

重新在瀏覽器訪問我們的接口

發現成功得到我們的結果了。
現在我們項目中可能會出現高並發的情況,所以我們可以用Uwsgi來解決這個問題
首先安裝Uwsgi

然后在我們項目的根目錄下新建一個fast_food_uwsgi.ini配置文件

保存退出后,我們運行一下我們的uwsgi

然后我們通過瀏覽器繼續訪問我們的接口

報了個502,出現報錯我們先別緊張,先看下報錯信息

紅色框框為報錯信息,這個問題一定是我們的fast_food_uwsgi.ini配置錯誤了,我們重新打開在仔細閱讀一下我們的代碼

發現真的有問題,看到紅色框框了沒有,nginx把請求發送給uwsgi是用tcp協議的,而我們現在是用瀏覽器訪問我們的uwsgi接口,是要通過http協議的,所以我們只需把socket改成http即可

保存退出,重新運行我們的fast_food_uwsgi.ini文件
uwsgi --inin fast_food_uwsgi.ini
重新在瀏覽器訪問我們的接口

發現我們熟悉的{'code': 0},又出現了。到現在為止我們已經完成nginx+uwsgi+django項目的部署。有什么問題可以在下方留言。
