zoukankan      html  css  js  c++  java
  • 学习项目部署Django+uwsgi+Nginx生产环境部署

    绪论


    项目生产环境部署,是很重的一个知识点。第一,Django自带的服务器很简陋,由于测试和开发环境尚可,无法用于生产环境,保障安全性和可靠性、以及性能。此外,学习部署方式,还有利于了解生产部署后的项目架构。

    组件安装


    #安装uwsgi
    pip3 install  uwsgi ≈
    #安装Nginx的依赖
    yum install gcc-c++
    yum install -y pcre pcre-devel
    yum install -y zlib zlib-devel
    yum install -y openssl openssl-devel
    #下载nginx
    wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
    #安装nginx
    cd -zxvf nginx-1.10.1.tar.gz
    cd nginx-1.10.1
    ./configure
    make
    make install
    #检查安装路径
    whereis nginx
    

    基本的启动停止操作


    # 测试启动uwsgi
    uwsgi --http a.b.c.d:xxxx --file path/filename --static-map=/static=static
    #  测试启停nginx,需要先进入nginx目录
    ./nginx
    ./nginx -s stop
    ./nginx -s quit
    ./nginx -s reload #重启
    

    配置uswgi


    在Django项目同级目录下,创建script目录,,进入后创建uwsgi.ini配置文件

    # uwsig使用配置文件启动
    [uwsgi]
    # 项目目录
    chdir=/xxx/xxx/xxx
    # 指定项目的application
    module=xxx.wsgi:application
    # 指定sock的文件路径       
    socket=/xxx/xxx/script/uwsgi.sock
    # 进程个数       
    workers=5   #workers的数量
    pidfile=/xxx/xxx/script/uwsgi.pid
    # 指定IP端口       
    http=a.b.c.d:port
    # 指定静态文件
    static-map=/static=/xxx/xxx/xxx/static
    # 启动uwsgi的用户名和用户组
    uid=root
    gid=root
    # 启用主进程
    master=true
    # 自动移除unix Socket和pid文件当服务停止的时候
    vacuum=true
    # 序列化接受的内容,如果可能的话
    thunder-lock=true
    # 启用线程
    enable-threads=true
    # 设置自中断时间
    harakiri=30
    # 设置缓冲
    post-buffering=4096
    # 设置日志目录
    daemonize=/xxx/xxx/script/uwsgi.log
    

    配置Nginx


    打开nginx配置文件位于nginx目录下的conf文件夹下 nginx.conf

    server {
            listen       80;
            server_name  localhost;
            
            location / {            
                include  uwsgi_params;
                uwsgi_pass  a.b.c.d:9090;              //必须和uwsgi中的设置一致
                uwsgi_param UWSGI_SCRIPT demosite.wsgi;  //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
                uwsgi_param UWSGI_CHDIR /demosite;       //项目根目录
                index  index.html index.htm;
                client_max_body_size 35m;
            }
        }
    

    运行


    uwsgi --ini /etc/uwsgi.ini.ini & /usr/local/nginx/sbin/nginx
    
  • 相关阅读:
    POST、GET请求中文参数乱码问题
    表的复制——sql语句
    mysql之limit m,n
    nullpointerxception——处理思路
    public-private-protected-默认缺省 的区别
    final关键字的作用
    使用注解来构造IOC容器
    成功的背后!(给所有IT人)
    jQuery对象复制
    键盘录入, if语句
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/9198185.html
Copyright © 2011-2022 走看看