【uWSGI】 实战之操作经验
以下是uWSGI版本为2.0以上,uwsgi的启动可以把参数加载命令行中,也可以是配置文件 .ini, .xml, .yaml
配置文件中,个人用的比较多得是 .ini
文件。下面总结下自己操作和使用经验,基本都是django部署。
启动,停止,重载
前提是在配置中制定了pid文件,这里使用 .ini
配置文件, pid文件叫 uwsgi.pid. 可以在此基础上自己写个启停脚本或者系统服务脚本。
启动
uwsgi --ini uwsgi.ini
重载(一般修改参数,或者修改py文件经常用到)
uwsgi --reload uwsgi.pid
重启(一般系统环境变化会用到)
uwsgi --stop uwsgi.pid
查看状态
前提是要配置状态文件或者端口,配置参考 文档status server 部分
这里是在 uwsgi.ini 中配置 stats=/tmp/uwsgi.status
读取uwsgi实时状态
uwsgi --connect-and-read /tmp/uwsgi.status
读取的结果是个json串,包括每个总的状态,每个work是状态,响应时间等,非常全面,也有一些开源的监控可以使用。
uwsgitop
这里有个uwsgi官方制作的实用工具 uwsgitop, 下面看下效果:
# pip install uwsgitop
# uwsgitop /tmp/uwsgi.status
uwsgi-2.0.9 - Mon Sep 14 11:20:44 2015 - req: 0 - RPS: 0 - lq: 0 - tx: 0
node: lzz-rmbp - cwd: /Users/liuzhizhi/erya/portal - uid: 501 - gid: 20 - masterpid: 12748
WID % PID REQ RPS EXC SIG STATUS AVG RSS VSZ TX RunT
1 0.0 12749 0 0 0 0 idle 0ms 0 0 0 0
2 0.0 12750 0 0 0 0 idle 0ms 0 0 0 0
3 0.0 12751 0 0 0 0 idle 0ms 0 0 0 0
4 0.0 12752 0 0 0 0 idle 0ms 0 0 0 0
5 0.0 12753 0 0 0 0 idle 0ms 0 0 0 0
6 0.0 12754 0 0 0 0 idle 0ms 0 0 0 0
7 0.0 12755 0 0 0 0 idle 0ms 0 0 0 0
8 0.0 12756 0 0 0 0 idle 0ms 0 0 0 0
unix socket 配置
有时候不想让反向代理走本地回环,可以使用 unix socket,来配置uwsgi和nginx。
uwsgi 配置 uwsgi.ini
...
socket=/tmp/portal.sock
...
nginx server块配置样例
location / {
client_max_body_size 4M;
uwsgi_pass unix:///tmp/portal.sock;
include uwsgi_params;
}
测试调试经验
使用http server
在测试环境或者压力非常小的环境,直接用uwsgi http非常好使。
uwsgi.ini 配置
http=0.0.0.0:8080
py文件修改,自动加载
uwsgi.ini 加入配置
py-autoreload = 1
缓存问题
生产环境中最好不要使用使django 的 local memory cache, 这个缓存是不能够进程间共享的,而我们的部署一般是多个进程的,一般需要缓存的数据即使是小量也最好用redis或者memcached这种全局cache服务,或者自己定义的缓存服务,uwsgi 有些缓存插件可以在整个uwsgi中共享缓存。
遇到的问题
【uWSGI】 实战之操作经验的更多相关文章
- Django + Uwsgi + Nginx 的生产环境部署实战
目录 Django + Uwsgi + Nginx 的生产环境部署实战 安装Uwsgi 一.使用命令来启动django项目 二.使用配置文件来启动我们的Django项目 安装Nginx 配置Nginx ...
- 【uWSGI】实战之Django配置经验
uWSGI 是应用服务器,实现了uwsgi, wsgi等协议,可以运行wsgi 应用 uwsgi 是协议名 Django配置 下面是自己经常用的一个配置模板,基于1.9以上的版本使用的, 主要基于dj ...
- Nginx+UWSGI+Django配置全过程
重度参阅 原理+实战http://zhou123.blog.51cto.com/4355617/1688434 原理http://www.cnblogs.com/fnng/p/5268633.html ...
- 快速部署Python应用:Nginx+uWSGI配置详解
在PHP里,最方便的就是deployment了,只要把php文件丢到支持PHP的路径里面,然后访问那个路径就能使用了:无论给主机添加多少PHP应用,只要把目录改好就没你的事了,完全不用关心php-cg ...
- Nginx+Python+uwsgi+Django的web开发环境安装及配置
Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...
- FastDFS概念、原理及CentOS7下安装实战
一.FastDFS基本概念及基本原理 1.什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并 ...
- [实战] 给现有的NGINX二进制RPM包加新模块
[实战] 给现有的NGINX二进制RPM包加新模块 一.前言 在做 wiki 的镜像,这样以后文章就可以使用外链了(链接直接跳转墙内小站). 遇到的问题就是:我的 NGINX 包安装的时候图方便采用 ...
- vue+uwsgi+nginx部署项目
首先先下载好前后端项目 先从前端vue搞起 要在服务器上,编译打包vue项目,必须得有node环境 下载node二进制包,此包已经包含node,不需要再编译 wget https://nodejs.o ...
- 项目实战2.3-Nginx的“远方表哥”—Tengine
本文收录在Linux运维企业架构实战系列 今天想起当初研究nginx反向代理负载均衡时,nginx自身的upstream后端配置用着非常不舒服: 当时使用的淘宝基于nginx二次开发的Tengine, ...
随机推荐
- 渗透测试环境DVWA搭建
一.DVWA介绍 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供 ...
- OpenCV设置摄像头分辨率及全屏显示
OpenCV3.0下 设置摄像头分辨率为1920*1440,并全屏显示图像窗口. int _tmain(int argc, _TCHAR* argv[]) { Mat frame; VideoCapt ...
- centos gnome面板菜单任务栏消失后的解决
今天终于下决心把我的电脑装成了centos,上网的时候感觉上边的那一行菜单栏碍事儿,就把他给删了 就是桌面最顶上这一行东西,然后百度无果,谷歌上不去,用bing好不容易才找到里解决方案! 症状:进入l ...
- leetcode之Find All Numbers Disappeared in an Array
问题来源:Find All Numbers Disappeared in an Array 很久没有刷题了,感觉大脑开始迟钝,所以决定重拾刷题的乐趣.一开始不要太难,选一些通过率高的题目做,然后就看到 ...
- MacOS下安装rvm的几点注意
如果用以下链接无法下载的话: curl -sSL https://get.rvm.io | bash -s stable #或者 curl -L https://rvm.io | bash -s st ...
- 最优秀的网络框架retrofit
由于某学员要求所以我打算写一篇 标题先记录下来 我会在一周内完成此篇文章
- Programming In Scala笔记-第二、三章
本系列博客以<Programming in Scala 2nd Edition>为主,围绕其中的代码片段进行学习和分析. 本文主要梳理Chapter2和Chapter3中涉及到的主要概念. ...
- 一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值。
比如{3,2,4,3,6} 可以分成 {3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2,4}{6} m=3 所以m的最大值为3. bool isShare(int* ...
- 用scheme最基本的元素定义排序函数
用到的元素有9个: define,if,null?,cons car,cdr,lambda,let,named let, 其实let 和 named let可以去掉.但那样会带来性能和可读性下降的问题 ...
- 磁盘管理,磁盘挂在mount,挂载光盘镜像文件,挂在U盘,umount 卸载命令, dd
1 mount 命令格式: mount[-t vfstype] -o options device dir 其中: *-t vfstype 指定文件系统的类型,通常不必指定.mount会自动选择正确的 ...