uwsgi是一個(gè)遵循wsgi協(xié)議的web服務(wù)器。

image.png

image.png

image.png
1.uwsgi服務(wù)器的安裝
pip install uwsgi==2.0.15
2.uwsgi服務(wù)器的配置
[uwsgi]
#使用nginx連接時(shí)使用
#socket=127.0.0.1:8080
#直接做web服務(wù)器使用
http=127.0.0.1:8080
#項(xiàng)目目錄
chdir=/Users/smart/Desktop/dj/bj17/項(xiàng)目名
#項(xiàng)目中wsgi.py文件的目錄,相對(duì)于項(xiàng)目目錄
wsgi-file=項(xiàng)目名/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
virtualenv=/Users/smart/.virtualenvs/虛擬環(huán)境名
3.uwsgi服務(wù)器的啟動(dòng)和停止
啟動(dòng):uwsgi –-ini 配置文件路徑 例如:uwsgi –-ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid路徑 例如:uwsgi –-stop uwsgi.pid
nginx
1.nginx配置轉(zhuǎn)發(fā)請(qǐng)求給uwsgi
location / {
include uwsgi_params;
uwsgi_pass uwsgi服務(wù)器的ip:port;
}
2.nginx配置處理靜態(tài)文件
1)django settings.py中配置收集靜態(tài)文件路徑:
STATIC_ROOT='收集的靜態(tài)文件路徑'
例如:STATIC_ROOT='/var/www/項(xiàng)目名/static'
2)在終端中執(zhí)行django收集靜態(tài)文件的命令:
python manage.py collectstatic
執(zhí)行上面的命令會(huì)把項(xiàng)目中所使用的靜態(tài)文件收集到STATIC_ROOT指定的目錄下。
3)在nginx配置文件中添加如下內(nèi)容:
location /static {
alias /var/www/項(xiàng)目名/static/;
}
3.nginx轉(zhuǎn)發(fā)請(qǐng)求給另外地址
在location 對(duì)應(yīng)的配置項(xiàng)中增加 proxy_pass 轉(zhuǎn)發(fā)的服務(wù)器地址。
如當(dāng)用戶訪問(wèn)127.0.0.1時(shí),在nginx中配置把這個(gè)請(qǐng)求轉(zhuǎn)發(fā)給172.16.179.131:80(nginx)服務(wù)器,
讓172.16.179.131:80服務(wù)器提供靜態(tài)首頁(yè)。
配置如下:
location = / {
proxy_pass http://172.16.179.131;
}
4.nginx配置upstream實(shí)現(xiàn)負(fù)載均衡
ngnix 配置負(fù)載均衡時(shí),在server配置的前面增加upstream配置項(xiàng)。
upstream 項(xiàng)目名 {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
修改nginx中的location /配置項(xiàng):
location / {
include uwsgi_params;
# uwsgi_pass uwsgi服務(wù)器的ip:port;
uwsgi_pass 項(xiàng)目名;
}