• linux --- 6. 项目部署


    一.负载均衡

        1.准备三台机器,准备3台虚拟机,或者和俩同桌交流一下
            
            192.168.226.128  是nginx资源服务器,返回页面的
            192.168.226.129   用作nginx负载均衡服务器
            192.168.226.130   也用作nginx资源服务器
            
        2.分别配置三台机器
        确保 128和130这2台机器,能正确的资源返回即可
        这三个机器,都是通过修改nginx.conf来实现效果的
        128此时返回 超哥 一米五的 页面
        130返回  
        129配置反向代理 
        
        
        3.配置关键点
        129(反向代理)负载均衡配置修改nginx.conf

      1.轮询方式

       2.加权轮询

       3.哈希方式

      对ip地址进行哈希,适当分配

     二.项目部署

      1.背景

      ①django的启动方式 python3 manage.py runserver

        为什么不能在生产环境用?

    django只是一个web逻辑框架,它通过python3 manage.py runserver命令启动的socket服务端
    是借助python内置的wsgi框架 wsgiref框架实现的
    它是一个单机模块,单进程模块,性能很低

       ②为什么要用nginx  和uwsgi?

    nginx  可以解决uwsgi的静态文件问题,并且支持高并发请求,
    还能限流,保障后台服务器安全等等 为什么要用uwsgi 因为uwsgi支持多进程 多线程的方式,性能很高,启动django性能更好,
    但是uwsgi不解析django的静态文件 我们以后会收集所有的django项目静态文件,丢给nginx去处理

       2.准备 uwsgi  工作

      ①下载 uwsgi

    pip3 install uwsgi

       ②最开始的使用uwsgi命令启动django项目


    uwsgi --http :8000 --module Crm_Project.wsgi
    --http指定http协议启动在 8088端口 --module 找到项目第二层的目录,里面的wsgi.py文件



     uwsgi支持热加载的启动方式命令如下

      uwsgi --http :8000 --module Crm_Project.wsgi --py-autoreload=1

      如果你想启动一个http页面,提供测试访问,就用--http参数

      如果你结合了nginx反向代理,必须用--socket参数
      uwsgi --socket :8000 --module Crm_Project.wsgi

         ③ 引入配置文件 uwsgi.ini

      1).放置位置无要求,可放在项目目录下,

      2).内容如下

    [uwsgi]
    # Django-related settings
    # the base directory (full path)
    #填写项目的绝对路径(第一层路径)
    chdir           = /root/login
    # Django's wsgi file
    #填写crm第二层目录下的wsgi.py文件的路径
    module          = login.wsgi
    # the virtualenv (full path)
    #填写虚拟环境的绝对路径
    home            = /root/Envs/mycrm
    
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    #基于uwsgi的多进程,根据cpu来优化 
    processes       = 4
    # the socket (use the full path to be safe
    
    #如果你用了nginx反向代理,就填写socket参数
    
    socket          = 0.0.0.0:8000
    
    #如果你没用nginx,想直接通过浏览器测试后端,使用http 
    #http = 0.0.0.0:8000
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true

      ④ 配置好文件后,启动

    uwsgi --ini  uwsgi.ini

    注意,启动的位置要在该目录下

      3.静态文件的准备

      ①编辑项目的 settings.py 文件

       ②执行命令,收集crm 所有的静态文件

    python3 manage.py collectstatic

       ③查看 /opt/crmstatic  下静态文件是否已存在

     

      4.nginx的配置文件  nginx.conf

      ①

            #当用户访问 www.s18dnf.com的时候,就进入这个虚拟主机
            location / {
            uwsgi_pass  0.0.0.0:8000;
            include uwsgi_params;
            }
    
            #这个location是解决crm的静态文件的问题的
            location /static  {
    #alias参数 就是将/static转化为/opt/crmstatic ,也就找到了我们所有的静态文件
            alias /opt/crmstatic;
            }        

           ② 重启  

    nginx  -s reload

    三.配置 supervisro 工具

           注意要退出虚拟环境

    1.安装easy_install 
        pip3是python3的软件包管理工具
        easy_install 是python2的软件包管理工具
        
        yum install python-setuptools
    
        2.安装supervisor
        easy_install supervisor
        
        3.创建supervisor的配置文件
        
        echo_supervisord_conf >  /etc/supervisor.conf 
    
        4.修改supervisor的配置文件,添加启动uwsgi的命令
        
        supervisor其实就是帮咱们执行了,需要手动执行的命令而已 
        vim /etc/supervisor.conf
        写入如下内容,在最底部写
    [program:s18crm]
    command=/opt/python36/bin/uwsgi  --ini /root/login/uwsgi.ini
    stopasgroup=true
    killasgroup=true
    
    
        5.测试用supervisor启动uwsgi ,注意要确保此时uwsgi已经退出
    
        
    supervisord -c  /etc/supervisor.conf   #这是启动supervisor服务端命令
    
    supervisorctl -c /etc/supervisor.conf     #这是supervisor客户端管理命令
    
        6.学习supervisor的命令
        
        status s18crm #查看状态
        start s18crm  #启动任务
        stop  s18crm #停止任务
        
        start all  
        stop  all  #启停所有的任务
  • 相关阅读:
    51nod 1416 两点 dfs
    Codeforces Round #424 (Div. 2) A-C
    Codeforces Round #423 (Div. 2) A-C
    Codeforces Round #422 (Div. 2) A-C
    HDU 6077 Time To Get Up 模拟
    51nod 1381 硬币游戏 概率
    51nod 1100 斜率最大 计算几何
    hihocoder 1287 : 数论一·Miller-Rabin质数测试 大质数判定
    字典树
    数论
  • 原文地址:https://www.cnblogs.com/sc-1067178406/p/10645966.html
Copyright © 2020-2023  润新知