uwsgi Nginx 部署過程及問題處理

2021-09-02 07:56:54 字數 3334 閱讀 5119

靜態檔案

•當 django 執行在生產模式時,將不再提供靜態檔案的支援,需要將靜態檔案交給靜態檔案伺服器。

•我們需要收集這些靜態檔案,集中一起放到靜態檔案伺服器中。

•先建立目錄 static。

•django 提供了收集靜態檔案的方法。先在配置檔案中配置收集之後存放的目錄。

static_root = os.path.join(os.path.dirname(os.path.dirname(base_dir)), 'web/static')
#解壓:

tar -zxvf nginx-1.11.3.tar.gz

#進入解壓目錄:

cd nginx-1.11.3

#配置:

./configure --prefix=/usr/local/nginx

注意:這裡可能會報錯,提示「pcre.h no such file or directory」,具體詳見:

需要安裝 libpcre3-dev,命令為:

sudo apt-get install libpcre3-dev

#安裝 nginx:

sudo make install

#啟動 nginx:

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

注意:-c 指定配置檔案的路徑,不加的話,nginx 會自動載入預設路徑的配置檔案,可以通過 -h 檢視幫助命令。

#檢視 nginx 程序:

ps -ef|grep nginx

•開啟 nginx 的配置檔案

sudo subl /usr/local/nginx/conf/nginx.conf

•在 server 部分中配置

server 

#餘下省略

}

•重啟 nginx 伺服器

sudo /usr/local/nginx/sbin/nginx -s reload

首次啟動 nginx 伺服器

sudo /usr/local/nginx/sbin/nginx

停止 nginx 伺服器

sudo /usr/local/nginx/sbin/nginx -s stop

暴力停止 nginx 伺服器

sudo pkill -9 nginx

uwsgi

django 的程式通常使用 uwsgi 伺服器來執行

•安裝 uwsgi

pip install uwsgi

•在專案目錄/meiduo_mall 下建立 uwsgi 配置檔案 uwsgi.ini

[uwsgi]

#使用 nginx 連線時使用,django 程式所在伺服器位址 socket=127.0.0.1:8001

#直接做 web 伺服器使用,django 程式所在伺服器位址http=127.0.0.1:8001

#專案目錄

chdir=/users/desktop/test

#專案中 wsgi.py 檔案的目錄,相對於專案目錄

wsgi-file=test/wsgi.py

#程序數

processes=4

#執行緒數

threads=2

#uwsgi 伺服器的角色

master=true

#存放程序編號的檔案

pidfile=uwsgi.pid

#日誌檔案,因為 uwsgi 可以脫離終端在後台執行,日誌看不見。

daemonize=uwsgi.log

#指定依賴的虛擬環境

virtualenv=/users/.virtualenv/test

•啟動 uwsgi 伺服器

uwsgi --ini uwsgi.ini

注意如果想要停止伺服器,除了可以使用 kill 命令之外,還可以通過

uwsgi --stop uwsgi.pid

通過命令檢視開啟狀態:

ps aux|grey uwsgi

•修改 nginx 配置檔案,讓 nginx 接收到請求後**給 uwsgi 伺服器

sudo subl /usr/local/nginx/conf/nginx.conf

•調整結果如下

upstream test 

server

}server

#error_page 500 502 503 504 /50x.html;

#location = /50x.html

}

•重啟 nginx

sudo /usr/local/nginx/sbin/nginx -s reload

多台伺服器配置

•修改 nginx 配置檔案

sudo subl /usr/local/nginx/conf/nginx.conf

•調整結果如下

upstream test
•重啟 nginx

sudo /usr/local/nginx/sbin/nginx -s reload

nginx 伺服器無法啟動

uwsgi 伺服器無法啟動

問題原因:uwsgi.ini 中的埠號和 nginx 伺服器端口號衝突,比如都是 8000;處理方法:

(1)調整 uwsgi.ini 中的埠號,不要和 nginx 伺服器衝突

socket=127.0.0.1:8001

(2)調整 nginx 配置檔案的埠號

upstream test {

server 127.0.0.1:8001; # 此處為 uwsgi 執行的 ip 位址和埠號

#如果有多台伺服器,可以在此處繼續新增伺服器位址

(3)關閉相關服務

sudo pkill -9 uwsgi

sudo pkill -9 nginx

(4)啟動相關服務

開啟 uwsgi:

uwsgi --ini uwsgi.ini

開啟 nginx:

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

uwsgi nginx 初次部署flask程式

是一種規範 是用來規範 伺服器和應用的。也是一種協議。可以做到任意乙個web伺服器 都可以搭配任意乙個框架只要web伺服器和web框架 滿足wsgi協議。他們就可以相互搭配。在python中 經常使用 uwsgi 和nginx 來部署乙個web框架。flask就是這樣的。就是實現了wsgi協議的乙個...

centos7 uwsgi nginx 部署記錄

一 安裝python3 tar xjf python 3.6.1.tar.xz 解壓python 包 configure prefix usr local python3 make make install 安裝python3 ln s usr local python3 bin python3 u...

CentOS部署過程

因為電腦配置不行,並且部署原環境為centos,為了避免其他的部署問題.還centos試試 電腦配置不高,所以選擇了minimal 600m 還有個everthing 7.4 g 乙個 4g 首先ifconfig命令無法使用 正確使用方式是 ip addr然後會發現並沒有獲取的ip 於是需要修改一下...