美文网首页程序员
部署Django Application(一)使用Nginx +

部署Django Application(一)使用Nginx +

作者: linxiangyu | 来源:发表于2014-06-08 11:02 被阅读1776次

    初始化服务器环境

    yum -y install vim git screen python-pip
    curl -L https://github.com/robbyrussell/oh-my-    zsh/raw/master/tools/install.sh | sh
    pip install virtualenvwrapper gunicorn django
    mkdir /usr/local/virtualenv
    mkvirtualenv python
    

    配置gunicorn服务器

    Gunicorn(gunicorn.org)是一个Python WSGI UNIX的HTTP服务器。,从Ruby的独角兽(Unicorn)项目移植。

    在Django项目下建立shell脚本

    #!/bin/bash
    set -e 
    LOGFILE=guni.log
    LOGDIR=$(dirname $LOGFILE)
    NUM_WORKERS=3  # cpu core nums * 2 + 1
    USER=nobody
    GROUP=nogroup
    # WORKER=gevent # install python gevent
    ADDRESS=127.0.0.1:8000
    test -d $LOGDIR || mkdir -p $LOGDIR
    exec gunicorn_django -w $NUM_WORKERS --bind=$ADDRESS \
     # -k $WORKER 
      --daemon \
      --user=$USER --group=$GROUP --log-level=error \
      --log-file=$LOGFILE 2>>$LOGFILE
    

    安装Nginx用作反向代理与静态服务器

    • 使用http://lnmp.org/ 安装Nginx

    • 用Lnmp一键安装包带的脚本新建一个虚拟主机

    • 更改主机的Nginx配置文件

        server {
      
            listen       80;
            server_name  nuptapi.nupter.org;
            access_log   /home/wwwlogs/nuptapi.nupter.org.log;
            error_log    /home/wwwlogs/nuptapi.nupter.org.error.log;
            root /home/wwwroot/nuptapi.nupter.org;
      
            location  /static/ {
                alias /home/wwwroot/nuptapi.nupter.org/static/;
            }
      
            location  / {
                proxy_pass            http://127.0.0.1:8000;
                proxy_redirect        off;
                proxy_set_header      Host             $host;
                proxy_set_header      X-Real-IP        $remote_addr;
                proxy_set_header      X-Forwarded-For  $proxy_add_x_forwarded_for;
                client_max_body_size  10m;
            }
      
        }
      

    用Supervisord守护进程

    • echo_supervisord_conf > /etc/supervisord.conf
    • vim /etc/supervisord.conf

    更改配置文件以下的内容

    • chown=lxy:lxy ; socket file uid:gid owner

    • [program:nuptapi]
      command=/home/wwwroot/django_helloworld/gunicorn_start.sh

    • Shell运行supervisord

    • 同时supervisord 默认会在9001端口打开一个HTTP服务器,可以在Nginx再配置一个反向代理来远程登陆

    其它

    • 配置DNS服务器,解析域名A记录到服务器IP
    • 重启Nginx

    相关文章

      网友评论

        本文标题:部署Django Application(一)使用Nginx +

        本文链接:https://www.haomeiwen.com/subject/lipftttx.html