• django + ngxin + uwsgi 站点部署


    第一步 创建项目启动脚本 

    # 创建项目启动脚本 vi /etc/init.d/project_name
    #!/bin/bash
    # Description: uwsgi manager scripts
    # chkconfig: - 65 45
    #
    # Get function from functions library
    . /etc/init.d/functions
    
    pidfile='/var/www/run/project_name.pid'
    conf='/var/www/config/project_name.ini'
    
    startcmd="/usr/bin/uwsgi --pidfile $pidfile -i $conf"
    stopcmd="/usr/bin/uwsgi --stop $pidfile"
    reloadcmd="/usr/sbin/uwsgi --reload $pidfile"
    start() {
            if ps -ef |grep -v grep |grep -q $pidfile;then
                    echo -n "uwsgi aleardy running ... "
                    echo
            else
                    echo -n "Starting uwsgi: "
                    $startcmd &> /dev/null
            if [ $? -eq 0 ];then
                        ### Create the lock file ###
                        success $"uwsgi startup"
                        echo
            else
                failure $"uwsgi startup"
                echo && exit 1
            fi
            fi
    }
    stop() {
            echo -n "Stopping uwsgi: "
            ### Stop
        $stopcmd
        if [ $? -eq 0 ];then
                ### Now, delete the lock file ###
                success $"uwsgi shutdown"
                echo
        else
            rm -f $lockfile
            failure $"uwsgi shutdown"
            echo && exit 1
        fi
    }
    
    reload() {
        echo -n "Reloading uwsgi: "
        $reloadcmd
        if [ $? -eq 0 ];then
            success $"uwsgi reload"
            echo
        else
            failure $"uwsgi reload"
            echo && exit 1
        fi
    }
    
    status() {
            if ps -ef |grep -v grep |grep -q $pidfile;then
            pidnum=$(cat $pidfile)
                echo "uwsgi (pid $pidnum) is running..."
            else
                echo "uwsgi is stoped."
            exit 1
        fi
    }
    ### main logic ###
    case "$1" in
    start)
            start
            ;;
    stop)
            stop
            ;;
    reload)
            reload
            ;;
    restart)
            stop
            sleep 1
            start
            ;;
    status)
            status
            ;;
    *)
            echo $"Usage: $0 {start|stop|reload|restart|status}"
            exit 1
    esac
    exit 0

    第二步 配置uwsgi

    $ pip install uwsgi   # 如未安装则先安装uwsgi

    # vi /var/www/config/pad_math2_api.ini
    [uwsgi] ;http
    -socket = :9101 socket = 127.0.0.1:9101 chdir = /var/www/pad_math2_api/esms/ pythonpath = /var/www/pad_math2_api/ env = DJANGO_SETTINGS_MODULE=esms.custom_settings #module = django.core.handlers.wsgi:WSGIHandler() module = django.core.wsgi:get_wsgi_application() workers = 4 max-request = 1000 listen = 100 harakiri = 60 enable-threads = true master = true daemonize = /var/www/logs/pad_math2_api.uwsgi.log

    第三步 配置nginx

    # server {}
    # include /usr/local/nginx/conf/pythonapp/*;

    server { listen
    8101; #server_name 192.168.0.76; #access_log logs/pad_math2_api.log main; #error_log logs/pad_math2_api_error.log; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9101; } }
    server {
            listen   80;
            server_name  domain.cn www.domain.cn 101.201.48.0;
            access_log  /data/logs/www.domain.cn_access.log;
            error_log   /data/logs/www.domain.cn_error.log;
    
            server_name_in_redirect off;
            if ($host != www.domain.cn) {
                    rewrite ^(.*)$ http://www.domain.cn$1 permanent;
            }
    
            location ^~/site_media/ {
                alias /data/www/yj_web/cms/site_media/;
            }
            location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
              access_log   off; # po co mi logi obrazk¨®w :)
              expires      30d;
            }
    
            location ^~/ {
                root   /data/www/yj_web/cms/templates/html;
                index  index.html index.htm;
            }
    
    }

    .

  • 相关阅读:
    ps切图保存所有切片为png
    指法练习 V1.0_haley(指法练习工具)
    zoj 4020 The 18th Zhejiang University Programming Contest Sponsored by TuSimple
    CF 某套题 O :Grid (简单BFS)
    codeforces 某套题s : surf(贪心 || 动态规划)
    STL模板整理 全排列
    STL模板整理 priority_queue
    STL模板整理 pair
    STL模板整理 set
    第八届省赛 B:Quadrat (打表找规律)
  • 原文地址:https://www.cnblogs.com/weiok/p/5364056.html
Copyright © 2020-2023  润新知