uWSGI服务器的使用

简介
  1. 介绍
    uWSGI 是一个快速的、纯C语言开发的、自维护的、对开发者友好的 WSGI 服务器,旨在提供专业的 Python web应用发布和开发。
  2. 安装
    uwsgi是python的一个包,所以直接命令安装即可
pip install uwsgi
名词解析

WSGI
英文全称:Web Server Gateway Interface,Web服务网管接口,简单来说它是一种Web服务器和应用程序间的通信规范。

uwsgi
uwsgi是一种通信协议,不过跟WSGI分属两种东西,该协议下速度比较快。

uWSGI
uWSGI是一个Web Server,并且独占uwsgi协议,但是同时支持WSGI协议、HTTP协议等,它的功能是把HTTP协议转化成语言支持的网络协议供python使用。

启动方式
  1. 命令行启动
uwsgi --http :9090 --wsgi-file foobar.py --master --processes 4 --threads 2
  1. 配置文件启动
    由于uwsgi参数众多,通过命令行启动略显繁琐,uwsgi提供通过配置文件启动,支持的配置文件有一下格式:
    1. ini
    2. xml
    3. json
    4. yaml
      默认支持格式为ini,同样为官方推荐格式。
  • 配置文件:
# 文件名:uwsgi.ini
[uwsgi]
http = 127.0.0.1:8080 # 可直接当web服务器,也可用来连接nginx
# socket = 127.0.0.1:8080 # 与nginx连用时使用

chdir = /zet/ZetCore # 设置工作目录
wsgi-file = ZetCore.wsgi # 指定与web程序通讯文件
# module = ZetCore.wsgi:application # 明确web程序中的通讯模块

home = /zet/Venvs/ZetCoreVenv # 设置虚拟环境路径
pidfile = uwsgi.pid #  指定pid文件的位置,记录主进程的pid号。

worker = 16 # 启动进程数
# processes = 16 启动进程数 二者设置一个即可

buffer-size = 4096 # 设置用于uwsgi包解析的内部缓存区大小。默认是4k。
chmod-socket = 666 # unix socket是个文件,所以会受到unix系统的权限限制。如果你的uwsgi客户端没有权限访问uWSGI socket,你可以用这个选项设置unix socket的权限。


vacuum = true #  当服务器退出的时候自动清理环境,删除unix socket文件和pid文件

disable-logging = true  # 不记录请求信息的日志。只记录错误以及uWSGI内部消息到日志中。
log-maxsize = 10000000  # 设置日志最大为10m,超过10m自动分隔
logto = /var/log/zet/ZetCore.log

  • 启动语句
uwsgi --ini /zet/ZetCore/uwsgi.ini
难点解析

一、配置文件中socket与http的区别:

  1. 当使用http时,uWSGI可以充当web服务器,客户端可直接访问,当然也可以通过nginx转发到uWSGI,此时nginx与uWSGI之间通讯协议是http协议。nginx中通过proxy_pass实现。
  2. 当使用socket时,uWSGI无法当做web服务器,只能通过nginx访问,此时nginx与uWSGI之间的通信协议是uwsgi,相比HTTP协议,此协议效率更高。nginx中通过uwsgi_pass实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值