nginx + gunicorn + virtualenv部署django

环境:ubuntu 14.04 64bit + django 1.8.0 + nginx 1.80 + virtualenv + gunicorn

1.准备工作

  1. 安装nginx
    这里安装的nginx1.80。
    安装教程:http://www.jikexueyuan.com/course/1470_2.html?ss=1

  2. 创建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 #示例用得到
    
  3. 配置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.其他

  1. 常用到的指令

    查看在8002端口的进程
    #lsof -i:8002
    
    关闭进程
    #kill -9 进程id
    
    关闭ngix
    #nginx -s stop
    
    重启nginx
    #nginx -s reload
    

参考文章

1.gunicorn+gnix:http://www.cnblogs.com/tk091/p/3859514.html
2.自强学堂:http://www.ziqiangxuetang.com/django/django-nginx-deploy.html
3.django官方部署教程:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/gunicorn/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值