祸兮福之所倚,福兮祸之所伏
分类: Python/Ruby
2017-03-01 13:06:52
使用nginx部署django的线上环境,nginx作为前端web服务器,django作为后端应用程序。uwsgi 是python 界的标准协议,类似于cgi。
原理: uwsgi作为django的代理服务,所有需要django处理的服务皆有uwsgi的端口来代理,nginx获取外部请求,转发到uwsgi。
系统环境 centos 6.5 x64
nginx的安装之前已经说过。
nginx 版本 1.8.1
安装uwsgi pip install uwsgi
uwsgi使用可以
使用命令使用
uwsgi --socket 127.0.0.1:3031 --chdir /home/foobar/myproject/ --master --processes4--threads2--stats 127.0.0.1:9191
-- socket 监听的端口
--chdir django项目目录
-- wsgi-file django项目下wsgi.py文件
--processes 启动的进程数
--threads 每个进程启动的线程数
--stats 监控端口
配置/etc/uwsig.ini 文件
[uwsgi]
uid = root #通常使用普通用户启动,此时一定要注意权限问题
gid = root
socket = 127.0.0.1:8000 #指定uwsgi的监听端口
chdir = /opt/django/mis #指定django的项目路径
module = mis.wsgi # mis 是指项目名,mis.wsgi 是指mis目录下的wsgi.py 文件
processes = 4 #启动的进程数,默认单进程
threads = 2 #每个进程启动的线程数
daemonize = /opt/uwsgi.log #默认后台启动,指定记录日志
启动uwsgi uwsgi /etc/uwsgi.ini 查看监听端口是否正常启动
配置静态文件
settings中设置 STATIC_ROOT = os.path.join(BASE_DIR,'static')
运行 python manage.py collectstatic 将后台样式复制到STATIC_ROOT中
nginx 配置文件
server {
listen 80;
server_name localhost;
access_log log/access.log main;
location / {
include uwsgi.pararms; #指定uwsgi路径
uwsgi_pass 127.0.0.1:8000;
}
location /static {
root {{ BASE_DIR }}; #指定静态文件路径,注意:不需要加static
}
}
运行nginx 就可以通过nginx访问django项目,包括后台。