• 在UOS 上部署 django + uwsgi + nginx 流程


    前言:这篇主要是流程,不喜勿喷,虽然我知道在部署过程中 参照博客写的越详细越好。 强大的百度会解决一切的

    爬了诸多坑 ,心累

    UOS 统一操作系统 前身 深度  arm 架构 (国产)

    开始安装(这里全部基于源码安装(手动安装)的方式)

    1、安装nginx依赖包

      ssl 功能 需要安装Openssl   网址:https://www.openssl.org/source/

      gzip库需要 安装zlib               网址:http://www.zlib.net/zlib-1.2.11.tar.xz

      rewrite模块需要 pcre 库      网址:https://ftp.pcre.org/pub/pcre/

      源码安装步骤:(这里不演示)

      1. tar -zxvf  ***.tar.gz

      2. cd ***

      3.  ./configure  

      4.make

      5.sudo make install

      小结:    1.      三个依赖包都是这样安装

          2.     3-5步容易出坑  耐心点 复制错误到百度 你会得到你想要的

    2、 安装nginx 

      奉上下载连接:https://nginx.org/download/nginx-1.16.1.tar.gz

      安装方式: 参见上面 源码安装

           相信我 你会出错 在第三小步 第四小步(如果没有 你可能是天选之子)还是那句话 复制错误到百度 你会解决的

      配置环境变量: 

           这里希望记住 (既然你选择linux)配置环境变量的文件 /etc/profile

            1. nginx 安装之后的路径 :/usr/local/nginx/sbin/ 

            2. sudo vim /etc/profile

            3. 在尾行添加  export  PATH=$PATH:/usr/local/nginx/sbin

            4. 配置完成 使用source  /etc/profile 

               5.  在终端 敲下 nginx  如果  未找到命令   (在确保没写错 路径的情况下,重启试试)

      在终端输入 nginx-t

          又有错误吧  不慌! 可能是权限原因 ,观察报错信息 找到文件 修改权限(sudo chmod 755  文件)如果不是 :百度!

    3、安装uwsgi

        python3.7 -m  pip install uwsgi      

    4、相信django就不用我介绍了吧 

      关键的点:

            settings .py    

              ALLOWED_HOSTS = ['*',]

              DEBUG = False

              STATIC_ROOT='api/static' (这个路径决定你  python3.7 manage.py collectstatic  生成的静态文件夹路径    什么?你不知道collectstatic是干什么的?请看下文)

            python3.7 manage.py collectstatic 

              你会得到一个文件夹 路径是 settings中 STATIC_ROOT 的路径,这个静态资源 后续会在nginx中引用  可以理解为 独立于django

    至此  环境 都安装完成 !!

    配置uwsgi

       uwsgi --http :8888 --module eduonline.wsgi  执行它 看看 uwsgi是否正常

      真正的配置 manga.py 的同级创建 一个 uwsgi.ini 文件

      打开它   配置如下内容  千万不要 把注释写到 代码后面 否则 你会发现 错误是因为什么

    [uwsgi]
     #  应用服务IP
    socket=0.0.0.0:8000 
    # 项目根目录 chdir=/home/api wsgi-file=api/wsgi.py # 指定wsgi模块,与nginx连接使用 module=api.wsgi # web服务IP端口 #http = 0.0.0.0:9000 # 开启主进程管理模式 master=true # 进程数 processes=4 # 每个进程的线程个数 threads=2 pidfile=/home/api/api/uwsgi.pid # 日志文件一般会自动创建 daemonize=/home/api/api/uwsgi.log # 不记录正常信息,只记录错误信息 #disable-logging=true

      这么多参数 我怎么知道什么意思   请输入 uwsgi -h  

      执行 uwsgi --ini uwsgi 启动uwsgi 就用这个命令  因为什么都配置好了  呓? 什么没有说呀  请看uwsgi.ini   daemonize找到这个文件 

    配置nginx 

      1. cd /usr/local/nginx/conf/

      2. sudo vim nginx.conf

      3. 

    server {
            listen       8080;
            server_name  www.baixin.com;   #  可以在hosts的文件里添加 DNS
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
            include uwsgi_params;
                uwsgi_pass 127.0.0.1:8000;  
            }
            location /static {
                alias /home/baixin/Desktop/vs_python/prue_projects/api/api/static;   #  python3.7 manage.py collectstatic 生成的static
            }

      4. 重启 nginx -s reload

      5. 浏览器 开网页

    附:

      日志很重要:nginx 日志 : /usr/local/nginx/log/

            uwsgi日志:     uwsgi.ini 配置的 daemonize

            django的日志 :配置一个很重要

                奉上简易版:

     # 日志配置
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'file': {
                'level': 'DEBUG',
                'class': 'logging.FileHandler',
                'filename': './logs/api_debug.log',
            },
        },
        'loggers': {
            'django': {
                'handlers': ['file'],
                'level': 'DEBUG',
                'propagate': True,
            },
        },
    }
  • 相关阅读:
    Sql之表的连接总结
    sql之独立子查询和相关子查询总结
    canvas 绘点图
    gulp插件
    jquery插件开发模板
    js中substring和substr的用法比较
    phpStudy 2016 更新下载,新版支持php7.0
    phpStudy for Linux (lnmp+lamp一键安装包)
    用 Function.apply() 的参数数组化来提高 JavaScript程序性能
    Js apply() call()使用详解
  • 原文地址:https://www.cnblogs.com/ZT-GJ/p/13503158.html
Copyright © 2020-2023  润新知