• 2019年3月28日 21:34

    uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议

    uwsgi.ini

    [uwsgi]
    
    http = :xxxx
    
    #django 端口号
    
    socket = 127.0.0.1:8001
    
    #django 目录
    chdir           = /xxx/xxx/xxx
    
    virtualenv = /root/.virtualenvs/xxxx_venv/
    
    #Django 项目下 wsgi.py 文件路径
    module          = xxxx.wsgi
    
    master          = true
    
    #进程数
    processes       = 4
    
    vacuum          = true
    
    daemonize    =  uwsgi/UWSGI.log         #日志记录
    
    stats = uwsgi/uwsgi.status
    
    pidfile = uwsgi/uwsgi.pid
    
    
    uwsgi --ini uwsgi.ini             # 启动
    uwsgi --reload uwsgi.pid          # 重启
    uwsgi --stop uwsgi.pid            # 关闭
    uwsgi --connect-and-read uwsgi/uwsgi.status  #读取uwsgi实时状态
    
  • 2019年3月29日 10:55

    相关配置参数解释

    socket : 地址和端口号,例如:socket = 127.0.0.1:50000
    
    processes : 开启的进程数量
    
    workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number of  workers / processes)
    
    chdir : 指定运行目录(chdir to specified directory before apps loading)
    
    wsgi-file : 载入wsgi-file(load .wsgi file)
    
    stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)
    
    threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)
    
    master : 允许主进程存在(enable master process)
    
    daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。
    
    log-maxsize :以固定的文件大小(单位KB),切割日志文件。 例如:log-maxsize = 50000000  就是50M一个日志文件。 
    
    pidfile : 指定pid文件的位置,记录主进程的pid号。
    
    vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)
    
    disable-logging : 不记录请求信息的日志。只记录错误以及uWSGI内部消息到日志中。如果不开启这项,那么你的日志中会大量出现这种记录:
    
    [pid: 347|app: 0|req: 106/367] 117.116.122.172 () {52 vars in 961 bytes} [Thu Jul  7 19:20:56 2016] POST /post => generated 65 bytes in 6 msecs (HTTP/1.1 200) 2 headers in 88 bytes (1 switches on core 0)
    
    log-maxsize: 日志大小,当大于这个大小会进行切分 (Byte)
    
    log-truncate: 当启动时切分日志