zoukankan      html  css  js  c++  java
  • 【uWSGI】实战之Django配置经验

    • uWSGI 是应用服务器,实现了uwsgi, wsgi等协议。能够执行wsgi 应用
    • uwsgi 是协议名

    Django配置

    以下是自己常常常使用的一个配置模板。基于1.9以上的版本号使用的。 主要基于django应用

    [uwsgi]
    djangoproject=/home/www/portal
    
    chdir=%(djangoproject)
    #virtualenv = /home/robc/.virtualenvs/workrave-cloud-server/
    #pythonpath = %(django_dir)
    
    wsgi-file=wsgi.py
    module = wsgi
    env=DJANGO_SETTINGS_MODULE=settings
    daemonize=%(djangoproject)/logs/uwsgi.log
    pidfile=%(djangoproject)/uwsgi.pid
    print=%(daemonize)
    
    #you can use http mode test
    #socket=0.0.0.0:9001
    http=0.0.0.0:8000
    #user unix sock
    #socket = %(deploy_dir)/run/uwsgi-%(project).sock
    #chmod-socket = 777
    
    stats=/tmp/myapp.status
    memory-report=true
    log-format = %(addr) - %(user) [%(ltime)] "%(method) %(uri) %(proto)" %(status) %(size) "%(referer)" "%(uagent)"
    master=True
    processes=8
    vacuum=True
    max-requests=8000
    eable-threads=True
    buffer-size=65535
    harakiri=30
    
    #listen queue number,you can see /proc/sys/net/core/somaxconn in linux
    listen=1024
    
    #user and group
    #uid = 
    #gid = 
    • 设置权限须要加入

    uid =
    gid =

    来进行权限控制

    • uWSGI能够使用socket 。http。或者unix socket,主要取决于应用场景
    • 不想打印请求的log 能够配置 disable-logging = true, 这样仅仅会打印启动log了
    • 在某些情况下python C拓展在多个解释器协作中并不好使 single-interpreter = true 来解决
    • harakiri=30 django文档中也推荐了这个选项,30代表30秒。主要是保护进程。防止某些危急的request拖死整个进程,详细原理參考[doc](

    http://uwsgi-docs.readthedocs.org/en/latest/FAQ.html#what-is-harakiri-mode) 假设应用有对外交互的接口。并且响应很慢的话,最好把值调大点,否则会常常重新启动。请求正常响应概率减少。

    • max-requests 当达到设定值之后会优雅的重载一个process
    • 配置文件里有些是属于uwsgi的魔法变量
      • %d 配置文件所在文件夹的绝对路径,能够依据这个省去许多路径的硬编码
      • %(params) 取出自己定义的变量的值

    配置选项能够參考官方文档或者这个ppt

    其它

    • 许多得採用 Emperor 模式(主要是用来监控配置文件,能够做到热插拔),也能够在uWSGI做python 应用的负载均衡
    • 配置文件的热插拔比較好的做法是。配置文件夹+软连接
    • gevent 或者 async 配置 对于纯django应用来说并没啥作用

    配置静态文件

    相似于nginx中的 alias

    static-map = /static=/usr/lib/python2.6/site-packages/django/contrib/admin/static
  • 相关阅读:
    关于Mac网络偏好设置的一些坑
    NOI2018网络同步赛爆零记
    【搞事情】英文文档单词对比&自动翻译
    函数
    文件处理的详细介绍
    字符编码+文件处理
    元组类型+字典类型+集合类型的详细讲解
    可变不可变类型+数字类型、字符串类型、列表类型的内置方法
    流程控制之if判断,while循环,for循环
    变量剩余补充+基本数据类型+输入输出+基本运算符
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7351406.html
Copyright © 2011-2022 走看看