您的位置:首页 > 运维架构 > Nginx

nginx + gunicorn + virtualenv部署django

2015-12-13 21:09 756 查看
环境:ubuntu 14.04 64bit + django 1.8.0 + nginx 1.80 + virtualenv + gunicorn

1.准备工作

安装nginx

这里安装的nginx1.80。

安装教程:http://www.jikexueyuan.com/course/1470_2.html?ss=1

创建virtualenv

# mkdir ~/mysite.com/www.dataliu.com
# cd ~/mysite.com/www.dataliu.com
# virtualenv env
# source ./env/bin/activate
# pip install django==1.8
# pip install gunicorn
# pip install MySQL-python #如果用到mysql的话
# pip install pillow #示例用得到


配置django项目为生产模式

这里厚颜无耻地推荐一下我的blog项目:

https://github.com/autoliuweijie/dataLiu.com

# cd ~/mysite.com/www.dataliu.com
# git clone git@github.com:autoliuweijie/dataLiu.com.git


clone完该django项目以后,需要对该项目进行一些修改,以适应生产环境;

1. 将setting.py里的DEBUG改为False
2. 设置setting.py里的ALLOWED_HOSTS = ['*',]
3. 添加静态文件目录,STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
4. 收集静态文件# python manage.py collectstatic


这样该django项目要用到的静态文件就全部收集到collected_static目录下了。

2. 用gunicorn启动django

这一步用来实现the clint -> gunicorn -> django。

在8002端口监听:

#nohup gunicorn vmaig_blog.wsgi:application -b 127.0.0.1:8002 &


测试是否成功, 用如下命令看看有没有返回预期的html,如果有则表示成功。

#curl 127.0.0.1:8002


3. 用nginx创建虚拟主机

用nginx创建一个虚拟主机,实现如下代理功能:

对于静态文件: the clint -> nginx -> collected_static
对于django的内容: the clint -> nginx -> gunicorn -> django


配置nginx

# vim /usr/local/nginx/conf/nginx.conf


注意:有些版本的不是是用/usr/local/nginx/conf/nginx.conf,而是/etc/nginx/nginx.conf,可以用如下指令查看使用的是哪个nginx.conf

# nginx -t


添加如下虚拟主机设置

# liuweijie site
server {
listen       80;
server_name  www.dataliu.com;

location /media  {
alias /root/mysite.com/www.dataliu.com/dataLiu.com/collected_static/;
}

location /static {
alias /root/mysite.com/www.dataliu.com/dataLiu.com/collected_static/;
}

location / {
proxy_pass http://127.0.0.1:8002; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}


检查是否有配置错误,然后启动nginx

# nginx -t  #检查错误
# nginx     #启动


大功告成,可以在浏览器访问www.dataliu.com界面了。

4.其他

常用到的指令

查看在8002端口的进程
#lsof -i:8002

关闭进程
#kill -9 进程id

关闭ngix
#nginx -s stop

重启nginx
#nginx -s reload


参考文章

1.gunicorn+gnix:/article/5043883.html

2.自强学堂:http://www.ziqiangxuetang.com/django/django-nginx-deploy.html

3.django官方部署教程:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/gunicorn/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: