uwsgi服务器配置及管理

一、uwsgi.ini注解

[uwsgi]
http-socket=:55555//配置uwsgi监听的socket(ip+端口)
callable=app//uwsgi调用的python应用实例名称,Flask里默认是app,根据具体项目代码实例命名来设置
wsgi-file=server.py//调用的主程序文件,绝对路径或相对于该ini文件位置的相对路径均可
master=true//以独立守护进程运行
processes=8//配置进程数量
threads=4//配置线程数量
enable-threads=true//允许在请求中开启新线程
stats=127.0.0.1:9191//返回一个json串,显示各进程和worker的状态
pidfile=uwsgi.pid//存放uwsgi进程的pid,便于重启和关闭操作
listen=1024//监听队列长度,默认100,设置大于100的值时,需要先调整系统参数
chdir = /project  //指定项目目录为主目录
daemonize=uwsgi.daemonize.log//以守护进程运行,日志文件路径
memory-report=true//启用内存报告,报告占用的内存
buffer-size=65535//设置请求的最大大小 (排除request-body),这一般映射到请求头的大小。默认情况下,它是4k,大cookies的情况下需要加大该配置

二、监听队列最大值调整

sysctl -a   //会显示所有的kernel参数及值。 
sysctl -w net.core.somaxconn=32768  //该命令将kernel参数net.core.somaxconn的值设置为32768,改动立即生效,但是重启机器后会恢复默认值。为了永久保留改动,需要用vi在/etc/sysctl.conf中增加一行 
net.core.somaxconn= 4000 ,然后执行命令 sysctl -p 刷新生效

/etc/sysctl.conf其他相关系统参数
#对于经常处理新连接的高负载 web服务环境来说,默认的 128 太小,建议根据项目估计连接规模加大该参数
net.core.somaxconn = 262144  //配合uwsgi.ini中的listen选项,先增大该系统参数,然后再提高uwsgi的监听队列长度,原因是listen的队列长度不能超过系统参数规定的最大连接数


​#表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数
net.ipv4.tcp_max_syn_backlog = 8192


#网卡设备将请求放入队列的长度
net.core.netdev_max_backlog = 65536

三、uwsgi管理(建议以uwsgi的方式重启和关闭)

1.启动uwsgi

uwsgi --ini uwsgi.ini   //从配置文件启动,将命令参数统一写进ini文件

2.重启uwsgi

(1)uwsgi命令重启

uwsgi --reload uwsgi.pid  //uwsgi.pid文件路径在ini文件中配置,uwsgi启动后所开启进程的pid号会自动写入该文件

(2)系统命令重启

kill -HUP pid #友好重启,不会丢失会话,pid为master进程的pid
kill -TERM pid #强制重启,可能丢失会话,pid为master进程的pid

3.查看uwsgi运行状态

uwsgi --connect-and-read uwsgi.status或127.0.0.1:9191  //返回json,显示进程和worker的详细状态

4.关闭uwsgi

(1)uwsgi命令关闭

uwsgi --stop uwsgi.pid

(2)系统命令关闭

kill -INT pid //pid为master进程的pid

你可能感兴趣的:(Python)