• 安装wget用于下载python源码包
     yum install wget

     

  • 安装python需要的组件
    yum -y install zlib-devel bzip2-devel openssl-devel libffi-devel ncurses-devel sqlite-sevel readline-devel tk-devel gcc make sqlite-devel python3-dev libxslt-devel libxml2-devel openldap-devel

     

  • 下载python源码包
    """
    1. 下载python源码包
    wget url
    
    2.解压源码包
    
    3.进入python目录,运行自检命令
    ./configure --prefix=/usr/local/python37
    # --prefix后面跟的是安装路径
    
    4. 安装
    make && make install
    
    5.创建快捷命令(软连接)
    ln -s /usr/local/python37/bin/python3 /usr/bin/python3
    
    6.安装虚拟环境
    yum install python-virtualenv
    
    7.创建虚拟环境
    virtualenv -p /usr/local/python37/bin/python3 ./venv/python3
    #              python所在的路径                  虚拟环境创建的路径
    
    进入虚拟环境:source python3/bin/activate
    退出虚拟环境:deactivate
    
    """

     

  • 安装uwsgi
    pip3 install uwsgi -i https://pypi.doubanio.com/simple

     

  • uwsgi配置文件
    [uwsgi]
    # 对外提供 http 服务的端口
    http = 0.0.0.0:8000
    
    #the local unix socket file than commnuincate to Nginx 用于和 nginx 进行数据交互的端口
    socket = 127.0.0.1:8001
    
    # the base directory (full path) django 程序的主目录
    chdir =../zhanhong_erp
    # 指定项目的application
    module=zhanhong_erp.wsgi:application
    # Django's wsgi file
    wsgi-file =../wsgi.py
    
    # maximum number of worker processes
    processes = 100
    
    #thread numbers startched in each worker process
    threads = 10
    
    #一个高阶的cheap模式,在启动的时候只会分配n个工作进程,并使用自适应算法启动新的进程
    cheaper = 10
    
    #在经过sec秒的不活跃状态的进程会被销毁(进入了cheap模式),并最少保留cheaper指定的进程数
    idle = 3600
    
    #monitor uwsgi status 通过该端口可以监控 uwsgi 的负载情况
    stats = 127.0.0.1:9000
    
    #当一个请求被harakiri杀掉会,会输出一条日志
    harakiri-verbose = true
    
    #开启内存使用情况报告
    memory-report = true
    
    #设置平滑的重启(直到处理完接收到的请求)的长等待时间(秒)
    reload-mercy = 10
    
    #设置工作进程使用虚拟内存超过N MB就回收重启
    reload-on-as= 1024
    
    #自动给进程命名
    auto-procname = true
    
    #为进程指定前缀
    procname-prefix-spaced = xc-mms
    
    #设置工作进程每处理N个进程就会被回收重启
    max-requests=500000
    
    #设置工作进程使用物理内存超过N MB就回收重启
    reload-on-rss=100
    # ========================= 如果项目需要下载大文件,下载时间较长,需要将下面三个超时时间延长 =========================
    #当uwsgi和nginx配合使用时设置这个,设置socket超时时间,默认4秒
    socket-timeout=6000
    
    # 当uwsgi单独使用时或者nginx直接使用proxy方式的时候,超时时间需要配置这个
    http-timeout=6000
    
    #设置一个请求的超时时间(秒),如果一个请求超过了这个时间,则请求被丢弃
    harakiri = 6000
    # =========================================================================================================
    #限制http请求体的大小如果项目有上传文件的需求需要把这个设置相应调大(Bytes)
    limit-post=4096
    
    # clear environment on exit
    vacuum = true
    
    #不记录request日志,只记录错误日志
    disable-logging = true
    
    #将日志打印到syslog上
    #log-syslog = true
    
    # pid文件保存位置
    pidfile = uwsgi.pid
    
    # 后台运行,并输出日志
    daemonize = /var/log/zhanhong.log
    
    stats=./uwsgi.status
    uwsgi配置

相关文章: