zoukankan      html  css  js  c++  java
  • nginx+uwsgi+Django部署线上环境

    环境安装

    Python点这里

    nginx点这里

    uwsgi安装配置

    pip3 install uwsgi
    # 不建立软连接可能会出现找不到命令
    ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

    项目流程

    在三面上个都安装好后,你得确保一下几点:

    • Django项目能正常运行。
    • 使用uwsgi能启动你的Django项目,并能正常访问。
    • nginx能访问默认首页。

    请求步骤:

    1、首先客户端请求服务资源,
    2、nginx作为直接对外的服务接口,接收到客户端发送过来的http请求,会解包、分析,
    3、如果是静态文件请求就根据nginx配置的静态文件目录,返回请求的资源,
    4、如果是动态的请求,nginx就通过配置文件,将请求传递给uWSGI;uWSGI 将接收到的包进行处理,并转发给wsgi,
    5、wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi,
    6、wsgi将返回值进行打包,转发给uWSGI,
    7、uWSGI接收后转发给nginx,nginx最终将返回值返回给客户端(如浏览器)。
    # 注:不同的组件之间传递信息涉及到数据格式和协议的转换

    配置文件

    uwsgi

    在Django项目manage.py同级目录创建uwsgi ini启动文件

    [uwsgi]
    # 与nginx通信的端口,必须与nginx一致
    socket = :8001 
    # 项目路径
    chdir = /root/HOMS/
    wsgi-file = HOMS/wsgi.py
    # 是否使用主线程
    master = true
    # 进程数
    processes = 4
    # 线程数
    threads = 2
    # 后台运行日志保存
    daemonize = /root/HOMS/log/uwsgi.log
    # 日志大小,当大于这个值会进行切分 (Byte)
    log-maxsize = 5000000
    # 当服务器退出的时候自动清理环境
    vacuum = true
    # 排队请求数 可以理解为最高并发量范围是0 - 65000
    listen = 60000
    # 权限
    chmod-socket = 666
    homs_uwsgi.ini

    创建好后,uwsgi文件启动项目

    # ini文件启动
    uwsgi3 --ini homs_uwsgi.ini

    Nginx

     在/etc/nginx/conf.d目录下新建一个uwsgi.conf文件

    upstream django {
        # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
        server 127.0.0.1:8001; # for a web port socket (we'll use this first)
    }
    
    # configuration of the server
    server {
        # the port your site will be served on
        listen     8181;
        # the domain name it will serve for
        server_name localhost; # substitute your machine's IP address or FQDN
        charset     utf-8;
    
        # max upload size
        client_max_body_size 75M;   # adjust to taste
    
        # Django media
        # location /media  {
           # alias /path/to/your/mysite/media;  # your Django project's media files - amend as required
        # }
        
        location /static {
            alias /root/HOMS/static/; # your Django project's static files - amend as required
        }
    
        # Finally, send all non-media requests to the Django server.
        location / {
            uwsgi_pass  django;
            include     uwsgi_params; # the uwsgi_params file you installed
        }
    }
    uwsgi.conf

    问题

    1、如果出现无法加载css、js等静态文件将/etc/nginx/nginx.con中的user修改为root即可。

    更新中...............

  • 相关阅读:
    第 33课 C++中的字符串(下)
    第 33课 C++中的字符串(上)
    第32课 初探C++标准库
    第31课 完善的复数类
    第30课 操作符重载
    第29课 类中的函数重载
    C++和C的相互调用
    函数重载遇上函数指针
    函数重载分析
    第2课 算法的效率问题
  • 原文地址:https://www.cnblogs.com/Dream-huang/p/10486654.html
Copyright © 2011-2022 走看看