uWSGI, uwsgi,WSGI
一. uWSGI, uwsgi,WSGI之间的区别联系
-
uWSGI是web服务器,实现了WSGI通信规范,uwsgi协议, http等协议
# uWSGI--web服务器的安装 pip install uwsgi
-
WSGI全名Web Server Gateway Interface, 是web服务器与web应用通信的一种规范
-
uwsgi是WSGI通信规范中的一种自有协议
二. uWSGI—web 服务器的常用命令及配置
uwsgi --http :8080 --wsgi-file test.py
uwsgi --http :8000 --module myproject.wsgi # 用此命令启动web服务
uwsgi --ini uwsgi.ini //从配置文件启动,将命令参数统一写进ini文件
sudo service uwsgi restart
ps aux | grep uwsgi
sudo pkill -f uwsgi -9
# 重启uwsgi
#(1) uwsgi命令重启
uwsgi --reload uwsgi.pid //uwsgi命令重启uwsgi启动后所开启进程的pid号会自动写入该文件
# (2) 系统命令重启
kill -HUP pid #友好重启,不会丢失会话,pid为master进程的pid
kill -TERM pid #强制重启,可能丢失会话,pid为master进程的pid
uwsgi --stop uwsgi.pid # 关闭uwsgi--uwsgi命令关闭
kill -INT pid //关闭uwsgi--系统命令关闭,pid为master进程的pid
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的情况下需要加大该配置
三. nginx, uWSGI, django项目
-
nginx是反向代理服务器
- 作为web服务器,处理静态文件和索引文件效果特别好
- 非常注重效率,最大支持5万个并发连接,但只占用很少的内存空间
- 强大的反向代理和负载均衡功能,根据请求情况和服务器负载情况,将请求分配给不同的web服务器,以保证服务器的性能.平衡集群中各个服务器的负载压力应用
- 安全:不管什么请求都要经过代理服务器,这样就避免了外部程序直接攻击web服务器
- 提高web服务器的IO性能:请求从客户端传到web服务器是需要时间的,传递多长时间就会让这个进程阻塞多长时间,而通过反向代理,就可以在反向代理这完整接受请求,然后再传给web服务器,从而保证服务器的性能
# centos下一些nginx的命令 yum install nginx systemctl start nginx //启动 Nginx systemctl stop nginx //停止Nginx systemctl enable nginx //启用开机启动Nginx systemctl disable nginx // 禁用开机启动Nginx # 配置完成后测试正确性 nginx -t
-
uWSGI是web服务器,是nginx与django项目之间的桥梁
-
django是web框架
Reference: Centos 7下安装配置Nginx-阿里云开发者社区 (aliyun.com)
Nginx实现集群的负载均衡配置过程解析_nginx_脚本之家 (jb51.net)
现集群的负载均衡配置过程解析_nginx_脚本之家 (jb51.net)](https://www.jb51.net/article/105373.htm)