Djangoプロジェクトのデプロイ(nginx + uwgsi)

 Djangoプロジェクトのデプロイ

 


9.1uwsgi
遵循wsgi协议的web服务器
9.1.1uwsgi的安装
pip install uwsgi
9.1.2uwsgi的配置
项目部署时,需要把settings.py文件夹下的:
DEBUG=FALSE
ALLOWED_HOSTS=[‘*’]

[uwsgi]
#使用nginx链接时使用
#socket=127.0.0.1:8080
#直接做web服务器使用
http=127.0.0.1:8080
#项目目录
chdir=/Users/smart/Desktop/dj/bj17/dailyfresh
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=dailyfresh/wsgi.py
#指定启动的工作进程数
processes=4
#指定工作进程中的线程数
threads=2
master=True
#保存启动之后主进程的pid
pidfile=uwsgi.pid
#设置uwgsi后台运行,uwsgi。Log保存日志信息
daemonize=uwsgi.log
#设置虚拟环境的信息
virtualenv=/Users/smart/.virtualenvs/dailyfresh


9.1.3uwsgi的启动和停止

启动:uwgsi --ini配置文件路径 例如:uwgsi --ini uwsgi.ini
停止:uwsgi  --stop uwsgi.pid路径  例如:uwsgi --stop uwsgi.pid

clear:清屏
ps aux | grep uwsgi   :查看进程
cat uwsgi.pid :查看进程号
cat uwsgi.log :查看日志

Nginx構成:

使用nginx:
1、	如果是动态请求,转交给uwsgi,然后返回给浏览器
2、	如果是静态请求,我们需要提前把静态文件放到nginx的所在电脑的某个目录里面,根据配置nginx就会去目录地下找到静态文件,返回给浏览器

9.2 nginx
9.2.1nginx配置转发请求给uwsgi
Location / {
  #包含uwsgi的请求参数
  Include uwsgi_params;
  #转交请求给uwsgi
  uwsgi_pass uwsgi服务器的ip:port; uwsgi_pass 127.0.0.1:8080;

  #负载均衡:uwsgi_pass dailyfresh;(请求8080和8081)
} 

9.2.2nginx配置处理静态文件
django settings.py 中配置手机静态文件路径:
STATIC_ROOT=手机的静态文件路径 例如:/var/www/dailyfresh/static;
Django手机静态文件的命令:
python manage.py collectstatic
执行上面的命令会把项目中所使用的静态文件收集到STATIC_ROOT指定的目录之下

收集完成静态文件之后,让nginx提供静态文件,需要再nginx配置文件中增加如下配置:

location /static {
   alias /var/www/dailyfresh/static/;
}


9.2.3nginx转发请求给另外地址(=是精确匹配)
再location对应的配置项目中增加proxy_pass转发的服务器地址。
如当用户访问127.0.0.1时,在nginx中配置把这个请求转发给127.16.179.131.80(nginx)服务器,让这台服务器提供静态首页。

配置如下:(80可以省略)
Location = / {
proxy_pass http://172.16.179.131;
} 
9.2.4nginx配置upstream实现负载均衡
Ngnix配置负载均衡时,再server配置的前面增加upsteam配置项。
upstream dailyfresh {
  server 127.0.0.1:8080;
  server 127.0.0.1:8081;
}

 

おすすめ

転載: blog.csdn.net/chehec2010/article/details/106414022