【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
时间: 2024-10-24 17:08:45

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

nginx+uwsgi+django 配置3

在uwsgi和django配置连接成功后,开始部署正式的业务. uwsgi.xml  和 manage.py  在同一个目录下 supervisor pip install  supervisor  安装supervisor echo_supervisord_conf > /路径supervisord.conf supervisord  开启 先弄懂两个命令: supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令 supervisorctl:启

django 配置404,500页面

Android Http 客户端编程之GET 说起Http编程,不尽然想起GET和POST两种请求方式,本文以简洁明了的的步骤和说明,将Android中常用的Http编程的方式列举出来,给刚刚在Android路上起步的奋斗者参考和指引,希望快速上手应用Android Http编程的同仁可以先绕过下面一段话. 做一件事之前,我们是否能驻足想一下要做这件事,我们需要做哪些工作,然后在经验中积累出模板思路和步骤,在程序界通常用设计模式来概括这些工作良好的解决方案.有了这些总结积累,这样我们就能举一反三

Nginx+uWsgi生产部署Django

部署得过程很简单,部署得核心在于,为什么要这样做,每一个参数代表什么意思,最终的目的是得了解,一些基概念性的东西. uWsgi简介 说Uwsgi之前,先说一下Wsgi. 什么是Wsgi? WSGI: 是一种Web服务器网关接口,它是一个Web服务器(如Nginx) 与应用服务器(如uWSGI服务器)通信的一种规范. uWSGI是一个Web服务器,它实现了WSGI协议,uwsgi,http等协议,Nginx中HttpUwsgiModul的作用是与uWSGI服务器进行交换 那么那些框架自带了Wsgi

uwsgi+nginx部署django项目

1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2  wsgi协议,uwsgi协议和uWSGI a. WSGI(wsgi): 全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种

分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2

实战Puppet 集中配置管理系统(3)——Puppet dashboard与nginx+passenger安装配置

     本次实验内容紧接前两次实验,第一节内容主要介绍PUPPET的安装认证与资源定义,第二节主要写apache与nginx模块的应用,本次介绍Puppet dashboard与nginx+passenger 的安装,Puppet dashboard 是用以 web 方式管理 puppet.puppet 默认使用基于 Ruby 的WEBRickHTTP 来处理 HTTPS 请求,单个服务器使用Apache/Nginx+Passenger 替换掉 WEBRickHTTP,Passenger 是用

django配置mysql数据库

安装完python后,安装python-mysql来连接mysql数据库,下载地址http://sourceforge.net/projects/mysql-python/,安装很简单,点下一步就可以了,不过要装和你python版本相对应的版本,否则比较蛋疼 安装完成后,配置下django的数据库连接,打开项目的配置文件settings.py,修改DATABASES参数 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql'

django 配置中STATICFILES_DIRS 和STATIC_ROOT不能同时出现

系统环境: win7 django版本查看: 启动django项目的时候,一直找不到静态资源,很奇怪放在linux服务器上的时候好好的,拿下来随便修改了配置就说url找不到了. 用wingIDE没有任何错误信息,只是告知404错误,这时候我误解以为是urlpatterns的问题,最后换pycharm编辑器,搭建新项目,提示settings报错信息,STATICFILES_DIRS不应该包含STATIC_ROOT,于是禁用STATIC_ROOT,再启动就好了. django 配置中STATICFI

Python+Apache+django配置

Python+Apache+django配置 Python2.7  https://www.python.org/downloads/release/python-2710/ Apache2.2 : http://www.apachehaus.com/cgi-bin/download.plx Django1.8  https://www.djangoproject.com/download/ Mod-wsgi: http://www.lfd.uci.edu/~gohlke/pythonlibs/