Python探路

编程入门 行业动态 更新时间:2024-10-12 05:45:15

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=Python探路"/>

Python探路

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

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

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

参考:.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

关于具体参数详解,这个网站讲解的比较详细:.html

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

更多推荐

Python探路

本文发布于:2024-03-07 14:52:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1718121.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!