• Django应用部署:nginx+uwsgi方式


    环境准备

    nginx+uwsgi方式部署顾名思义,需要nginx和uwsgi两个软件包。

    nginx不用说,是必备的,关于nginx的安装本文不再赘述,详情可以自行搜索或者参考我以前的文章:
    Debian8搭建LEMP环境

    安装uwsgi

    pip install uwsgi
    

    上传项目代码 & 测试

    # 进入项目目录,具体目录请自行选择
    cd /path/to/project
    
    # 建立虚拟环境
    virtualenv venv
    
    # 激活虚拟环境
    source venv/bin/activate
    
    # 安装依赖
    pip install -r requirement.txt
    
    # 开启测试服务器
    python manage.py runserver 0.0.0.0:8001
    

    配置uwsgi

    uwsgi支持多种格式的配置文件,本文选择ini格式。

    在项目目录中创建uwsgi.ini文件,内容如下:

    [uwsgi]
    # Django-related settings
    
    socket = :8001
    
    # Virtualenv
    home            = /var/www/html/_project/ClassHelperWxApp/venv
    
    # the base directory (full path)
    chdir           = /var/www/html/_project/ClassHelperWxApp
    
    # Django s wsgi file
    module          = Config.wsgi
    
    # process-related settings
    # master
    master          = true
    
    # maximum number of worker processes
    processes       = 4
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    

    开启uwsgi测试

    # 进入项目目录
    cd /path/to/project
    
    # 开启uwsgi服务器
    uwsgi -s --ini uwsgi.ini
    

    这个时候还不能访问,因为服务器设置成socket模式,如果想先访问一下试试看,可以把ini配置文件里面的socket改成http,即可访问项目网站,不过静态文件暂时访问不了。

    nginx配置反向代理

    /etc/nginx/sites-available目录中新建一个配置文件。
    例如:domain.com.conf,配置代码如下

    附赠了https的配置,如果不需要的话把ssl相关的配置行删除即可。

    server {
        # the port your site will be served on
        listen 80;
        listen 443 ssl;
    
        # the domain name it will serve for
        server_name domain.com; # substitute your machine's IP address or FQDN
        charset     utf-8;
    
        ssl on;
        #证书文件
        ssl_certificate /path/to/keys/1_domain.com_bundle.crt;
        #私钥文件
        ssl_certificate_key /path/to/keys/2_domain.com.key;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers on;
    
    
        # max upload size
        client_max_body_size 75M;   # adjust to taste
    
        # Django media
        location /media  {
            alias /path/to/project/media;  # your Django project's media files - amend as required
        }
    
        location /static {
            alias /path/to/project/static; # your Django project's static files - amend as required
        }
    
        # Finally, send all non-media requests to the Django server.
        location / {
            include     uwsgi_params; # the uwsgi_params file you installed
            uwsgi_pass 127.0.0.1:8001;
        }
    }
    

    然后使用ln -s创建一个到sites-enabled的软链接,重新加载nginx即可。

    service nginx reload
    

    image.png

    About


    了解更多有趣的操作请关注我的微信公众号:DealiAxy
    每一篇文章都在我的博客有收录:blog.deali.cn

  • 相关阅读:
    C++网易云课堂开发工程师-操作符重载
    C++网易云课堂开发工程师-参数传递与返回值
    C++网易云课堂开发工程师-class的声明
    C++网易云课堂开发工程师-头文件与类声明
    线性代数的本质-08第二部分-以线性代数的眼光看叉积
    线性代数本质-08第一部分-叉积的标准介绍
    线性代数的本质-07-点积与对偶性
    线性代数的本质-06补充说明-非方阵
    线性代数的本质-06-逆矩阵、列空间与零空间
    cocos2d-x
  • 原文地址:https://www.cnblogs.com/deali/p/9201053.html
Copyright © 2020-2023  润新知