• 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

【uWSGI】实战之Django配置经验的更多相关文章

  1. nginx uwsgi django 配置

    用django框架,uwsgi服务器作为动态服务器,nginx作为静态资源服务器 配置uWSGI,在项目目录下创建uwsgi.ini文件: [uwsgi] #使用nginx连接时使用 socket=1 ...

  2. uwsgi+django 配置

    uwsgi+django 创建新的虚拟环境,且解决crm的环境依赖 在虚拟环境下安装uwsgi pip3 install uwsgi 学习uwsgi命令,如何启动python应用 启动python w ...

  3. 使用uWSGI+nginx部署Django项目

    最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...

  4. 源码安装python +NGINX 的坎坷路 +uwsgi安装 部署django 的CRM项目

    一.Nginx安装(基于ubuntu17.10 版本) 首先我们是基于源码安装,主要有如下步骤 1.安装依赖包 1.安装gcc g++的依赖库 sudo apt-get install build-e ...

  5. 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署

    准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...

  6. Nginx+uWsgi生产部署Django

    部署得过程很简单,部署得核心在于,为什么要这样做,每一个参数代表什么意思,最终的目的是得了解,一些基概念性的东西. uWsgi简介 说Uwsgi之前,先说一下Wsgi. 什么是Wsgi? WSGI: ...

  7. Django——配置服务器上线

    使用UWSGI和NGINX配置项目上线 首先你得有一个拿得出手的项目 其次,购买了域名,也备案成功了 将settings.py中的DEBUG设置为False 配置Uwsgi 在项目(哪里都可以)中创建 ...

  8. ubuntu18+uwsgi+nginx部署django项目

    更新系统软件源 sudo apt-get update pip3安装 sudo apt install python3-pip 安装virtualenvwrapper pip3 install vir ...

  9. uwsgi+nginx部署django项目

    1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2  ...

随机推荐

  1. T-SQL注意事项(1)——SET NOCOUNT ON的去与留

    前言 用了一段时间T-SQL之后,哪怕自己没用过,也多多少少看过SSMS中的SET NOCOUNT ON命令,很多性能优化文章中都有提到这个东西,它们建议尽可能使用这个命令减少网络传输的压力,那么今天 ...

  2. cenos安装jdk

    安装方式:手动安装 软件:jdk-7u79-linux-x64.tar.gz 官网下载地址:进行下载. 下载完成之后上传到我们的服务器,我使用的是cenos6.5阿里云系统.securecrt工具上传 ...

  3. Dynamics CRM 开启EmailRouter日志记录

    找到mailrouter的安装路径,在service文件夹下找到"Microsoft.Crm.Tools.EmailAgent.xml"这个文件,已管理员方式打开,找到loglev ...

  4. Android的ImageSwitcher和TextSw-android学习之旅(三十四)

    ImageSwitcher简介 ImageSwitcher继承了ViewSwitcher,所以在切换时候会有动画,可以把它理解成一个动画版本的ImageView. 他的showNext(),和show ...

  5. 安卓banner图片轮播

    之前写过一篇关于首页图片广告轮播的demo:http://blog.csdn.net/baiyuliang2013/article/details/45740091,不过图片轮播的指示器(小白点)处操 ...

  6. TCP/IP入门(2) --网络层

    /** 本篇博客由 126(127不可用) 2^24 -2 B 2^14 -1 128.1 191.255 2^16 -2 C 2^21 -1 192.0.1 223.255.255 2^8 -2 D ...

  7. UNIX环境高级编程——文件I/O

    一.文件描述符 对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的.当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数).后续对文件的操作只需通过该文件描述符,内核记 ...

  8. DB 查询分析器 6.04 发布 ,本人为之撰写的相关技术文章达78篇

    DB查询分析器 6.04 发布,本人为之撰写的相关技术文章达78篇 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/artic ...

  9. PA 项目创建任务

    ---- 创建任务 DECLARE p_project_id NUMBER := 155233; p_task_number VARCHAR2(240) := 'CXYTEST0001'; p_tas ...

  10. Java最最常用的100个类排序(非官方)

    下面这句话是引用"大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库, ...