【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=30django文档中也推荐了这个选项,30代表30秒,主要是保护进程,防止某些危险的request拖死整个进程,具体原理参考[doc](
http://uwsgi-docs.readthedocs.org/en/latest/FAQ.html#what-is-harakiri-mode) 如果应用有对外交互的接口,而且响应非常慢的话,最好把值调大点,否则会经常重启,请求正常响应概率降低。
- max-requests 当达到设定值之后会优雅的重载一个process
- 配置文件中有些是属于uwsgi的魔法变量
%d配置文件所在目录的绝对路径,可以根据这个省去很多路径的硬编码%(params)取出自定义的变量的值
其他
- 非常多得采用 Emperor 模式(主要是用来监控配置文件,可以做到热插拔),也可以在uWSGI做python 应用的负载均衡
- 配置文件的热插拔比较好的做法是,配置目录+软连接
- gevent 或者 async 配置 对于纯django应用来说并没啥作用
配置静态文件
类似于nginx中的 alias
static-map = /static=/usr/lib/python2.6/site-packages/django/contrib/admin/static
【uWSGI】实战之Django配置经验的更多相关文章
- nginx uwsgi django 配置
用django框架,uwsgi服务器作为动态服务器,nginx作为静态资源服务器 配置uWSGI,在项目目录下创建uwsgi.ini文件: [uwsgi] #使用nginx连接时使用 socket=1 ...
- uwsgi+django 配置
uwsgi+django 创建新的虚拟环境,且解决crm的环境依赖 在虚拟环境下安装uwsgi pip3 install uwsgi 学习uwsgi命令,如何启动python应用 启动python w ...
- 使用uWSGI+nginx部署Django项目
最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...
- 源码安装python +NGINX 的坎坷路 +uwsgi安装 部署django 的CRM项目
一.Nginx安装(基于ubuntu17.10 版本) 首先我们是基于源码安装,主要有如下步骤 1.安装依赖包 1.安装gcc g++的依赖库 sudo apt-get install build-e ...
- 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署
准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...
- Nginx+uWsgi生产部署Django
部署得过程很简单,部署得核心在于,为什么要这样做,每一个参数代表什么意思,最终的目的是得了解,一些基概念性的东西. uWsgi简介 说Uwsgi之前,先说一下Wsgi. 什么是Wsgi? WSGI: ...
- Django——配置服务器上线
使用UWSGI和NGINX配置项目上线 首先你得有一个拿得出手的项目 其次,购买了域名,也备案成功了 将settings.py中的DEBUG设置为False 配置Uwsgi 在项目(哪里都可以)中创建 ...
- ubuntu18+uwsgi+nginx部署django项目
更新系统软件源 sudo apt-get update pip3安装 sudo apt install python3-pip 安装virtualenvwrapper pip3 install vir ...
- uwsgi+nginx部署django项目
1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2 ...
随机推荐
- Spark集群模式&Spark程序提交
Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos- ...
- 从嵌入式linux到android应用开发
时间过得很快,转眼之间已经到新公司一个月了.虽然学到了一些移动开发的知识,但是觉得离我的目标还很远,完全没能达到我想要的水平.以前产品都是自己主导的,需要完成什么,计划什么也是自己主导,现在得从头 ...
- ORA-12519: TNS:no appropriate service handler found 解决
select count(*) from v$process --当前的连接数select value from v$parameter where name = 'processes' --数据库允 ...
- 2、Android构建本地单元测试
如果你的单元测试在Android中没有依赖或者只有简单的以来,你可以在你的本地开发环境中运行你的测试.这种测试比较高效因为它能让你避免将整个app安装到物理设备或虚拟机中执行单元测试.最后,执行单元测 ...
- 使用Hash函数和MAC产生伪随机数
基于Hash函数的PRNG 流程非常类似于对称密码的CTR工作模式 算法的伪码如下 m = ⌈n/outlen⌉ data = V W = the null String for i = 1 to m ...
- 快速高分辨率图像的立体匹配方法Effective large scale stereo matching
<Effective large scale stereo matching> In this paper we propose a novel approach to binocular ...
- Android support library支持包常用控件介绍(二)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library ...
- pig中查询top k,返回每个hour和ad_network_id下最大两个记录(SUBSTRING,order,COUNT_STAR,limit)
pig里面是有TOP函数,不知道为什么用不了.有时间要去看看pig源码了. SET job.name 'top_k'; SET job.priority HIGH; --REGISTER piggyb ...
- flex 强制转换类型失败无法将object转换为XXX
错误描述 flex在加载module时报出如题所示的错误, 实际表现 问题就出现在这 我取消这个错误提示框 再次在前台查询数据 就一切ok 问题就出现在这一句 var zoufangModel:ZfR ...
- Cracking the Coding Interview:: 寻找有环链表的环路起始节点
给定一个有环链表,实现一个算法返回环路的开头节点. 这个问题是由经典面试题-检测链表是否存在环路演变而来.这个问题也是编程之美的判断两个链表是否相交的扩展问题. 首先回顾一下编程之美的问题. 由于如果 ...