靜態檔案
•當 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 於是需要修改一下...