轉canda uwsgi nginx部署
conda 環境不必多說:conda(或source) activate test進入test虛擬環境
接下來安裝uwsgi:
pip install uwsgi 在conda環境下大概率安裝不成功,可以使用一下命令代替:
conda install-c conda-forge uwsgi
執行uwsgi有可能碰到 libiconv.so 動態庫找不到的問題,同樣可以用conda安裝
conda install-c conda-forge libiconv
uwsgi安裝好後,需要在django專案根目錄下建立一個名為uwsgi.ini的檔案,在裡面配置好uwsgi:
[uwsgi] socket=127.0.0.1:8000 # 指定專案執行的埠號,用nginx的時候就要配socket
pythonpath=/home/admin/test/ # 指定專案所在位置,在使用conda虛擬環境時必須要有這一條
chdir=/home/admin/test/ # 指定專案的目錄
wsgi-file=test/wsgi.py # 專案上wsgi.py所在的位置,與settings目錄相同processes=1 # 開啟的程序數量
threads=2
master=True # master :允許主執行緒存在(true)
pidfile=uwsgi.pid
daemonize=uwsgi.log # 日誌,uwsgi無法啟動時來這檢視錯誤日誌
uwsgi配置好後,要啟動uwsgi, 啟動命令:
uwsgi --ini uwsgi.ini # 啟動uwsgi, 一定要在django實際使用的conda環境下,否則會報錯
uwsgi --stop uwsgi.pid # 停止uwsgi
uwsgi --reload uwsgi.pid # 重啟uwsgi
uwsgi配置好後,要配置nginx:
首先安裝nginx, 執行命令 sudo apt install nginx
nginx 命令:
sudo service nginx start 啟動
sudo service nginx stop 停止
sudo service nginx restart 重啟nginx
sudo nginx -s reload 過載配置檔案
sudo nginx -s quit 優雅的停止nginx
sudo nginx -s term 停止nginx
sudo nginx -s reopen 開啟一份新的日誌
配置nginx:
在/etc/nginx/site-available下新建檔案test.conf: server {
listen 8888; #nginx監聽的埠 charset utf-8; client_max_body_size 75M; location / { uwsgi_pass 127.0.0.1:8000; # 與uwsgi中配置的相一致 include /etc/nginx/uwsgi_params;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static/ { # 如果用到靜態檔案
alias /home/test/test/static/;
}
}
然後要建立軟連線:
sudo ln -s /etc/nginx/site-available/test.conf /etc/nginx/site-enabled/test.conf
最後用 sudo nginx -s reload 命令啟動過載配置檔案即可
最後, 如果需要配置負載均衡:
// http模組中配置upstream upstream test { server 127.0.0.1:8002 weight=2; server 127.0.0.1:8003 weight=1; } // 將server模組中的location替換為如下 location / { proxy_pass http://test; }分類:部署