Python探路-uWSGI服务

一、在介绍uWSGI之前,先介绍几个概念:

1、WSGI和uwsgi是两种通信协议,而uwsgi是uWSGI服务器独有的

2、uWSGI是一个全功能的HTTP服务器,实现了WSGI协议、uwsgi协议、http协议等。它要做的就是把HTTP协议转化成语言支持的网络协议。比如把HTTP协议转化成WSGI协议,让Python可以直接使用。

参考:https://www.jb51.net/article/144852.htm

二、下面先介绍下WSGI服务的工作流程,最后介绍uWSGI服务的配置:

1、WSGI服务(以Django为例)一般由两部分组成,server和application:

1)、WSGI server负责从客户端接收请求,将request转发给application,将application返回的response返回给客户端;

2)、WSGI application接收由server转发的request,处理请求,并将处理结果返回给server。application中可以包括多个栈式的中间件(middlewares),这些中间件需要同时实现server与application,因此可以在WSGI服务器与WSGI应用之间起调节作用:对服务器来说,中间件扮演应用程序,对应用程序来说,中间件扮演服务器。

2、实现:

1)、WSGI application应该实现为一个可调用对象,例如函数、方法、类(包含`call`方法)。需要接收两个参数:

a、一个字典,该字典可以包含了客户端请求的信息以及其他信息,可以认为是请求上下文,一般叫做environment(编码中多简写为environ、env)

b、一个用于发送HTTP响应状态(HTTP status )、响应头(HTTP headers)的回调函数

application的流程工作流程:

a、加载所有中间件,以及执行框架相关的操作,设置当前线程脚本前缀,发送请求开始信号

b、处理请求,调用get_response()方法处理当前请求,该方法的的主要逻辑是通过urlconf找到对应的view和callback,按顺序执行各种middleware和callback

c、调用由server传入的start_response()方法将响应header与status返回给server。

2)、WSGI Server负责获取http请求,将请求传递给WSGI application,由application处理请求后返回response

server的工作流程:

3、最后来了解下uWSGI服务的配置:

[uwsgi]
http11-socket = [::]:324
http-keepalive = true
master = true
harakiri = 120
chdir = /zp/server
manage-script-name = true
mount = /client=/home/work_django/wsgi.py
processes = 8
threads = 40
pidfile = /usr/local/bin/uwsgi.pid
daemonize = /home/work_django/logs/uwsgi.log
buffer-size = 32768
listen = 1024
reload-on-rss = 512
cheaper = 2
cheaper-initial = 2
die-on-term = true
py-tracebacker = /tmp/tbsocket.
log-maxsize = 50000000

关于具体参数详解,这个网站讲解的比较详细:https://www.cnblogs.com/sky20081816/p/3318559.html

最后提下直接通过uwsgi /home/work_django/conf/uwsgi-socket.ini即可允许uWSGI服务器

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值