• 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. ROS_Kinetic_x 基於ROS和Gazebo的RoboCup中型組仿真系統(多機器人協作)

    國防科學技術大學發布了RoboCup中型組仿真平臺,基於ROS和Gazebo設計. 該平臺可以用於多機器人協作研究.參考資料如下: ROS新聞:1    http://www.ros.org/news ...

  2. 同步图计算:GraphLite的安装和使用

    http://blog.csdn.net/pipisorry/article/details/51350908 export HADOOP_HOME=/usr/local/hadoop-2.6.4ex ...

  3. 概率论:假设检验-t检验和Augmented Dickey–Fuller test

    http://blog.csdn.net/pipisorry/article/details/51184556 T检验 T检验,亦称student t检验(Student's t test),学生t检 ...

  4. ubuntu14.04使用root用户登录桌面

    ubuntu安装好之后,默认是不能用root用户登录桌面的,只能使用普通用户或者访客登录.怎样开启root用户登录桌面呢? 先用普通用户登录,然后切换到root用户,然后执行如下命令: vi /usr ...

  5. Android光线传感器-android学习之旅(65)

    主要讲解光线传感器的使用,其实所有的传感器用法类似 主要是定义一个TextView用来显示光线强度,用完了以后记得在OnDestory里面释放资源 代码如下 public class MainActi ...

  6. Java实现二叉树的创建和遍历操作(有更新)

    博主强烈建议跳过分割线前面的部分,直接看下文更新的那些即可. 最近在学习二叉树的相关知识,一开始真的是毫无头绪.本来学的是C++二叉树,但苦于编译器老是出故障,于是就转用Java来实现二叉树的操作.但 ...

  7. OpenCL异构计算资料收集

    Easy OpenCL with Python   原文  http://www.drdobbs.com/open-source/easy-opencl-with-python/240162614   ...

  8. (四十五)Modal 模态窗口 -遮盖

    任何控制器都能通过Modal方式切换. Modal的默认效果是:新显示的控制器从屏幕底部向上,直到盖住之前的控制器为止. 假设有One和Two两个控制器: One到Two的Modal方法:presen ...

  9. Linux 学习笔记_12_文件共享服务_4_SSH

    SSH文件共享服务 一.ssh远程登录[一般的Linux系统都会默认安装并启用] 1.Linux上远程命令行登录:ssh 用户名@远程主机IP地址 常用选项: -2:表示SSH2,强制使用第二代SSH ...

  10. Linux 学习笔记_12_文件共享服务_2_FTP应用--vsftpd

    Wu-FTP:古老,配置复杂 Proftp:功能强大 vsftp: 安全,高速,稳定[系统默认的FTP软件] VSFTP服务器配置 启动:/etc/rc.d/init.d/vsftpd start [ ...