django服务器的响应流程
2018-11-13 本文已影响0人
寻找u
服务器响应流程
- -browser -> load balance(负载均衡)
- -load balance -> Nginx(Web Server)
- -Nginx -> Http Server(uwsgi, gunicorn, runserver)
- -Http Server -> process_request
- -process_request -> urls
- -urls -> process_view
- -process_view -> views
- -views -> models
- -models -> views
- -views -> process_template_response
- -process_template_response -> response
- -response -> process_response
- -process_response -> Browser
Django的请求到响应的流程,简单的来说就是利用wsgi,当用户发来一个request进行response,请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】,【客户端层】到【反向代理层】的负载均衡,是通过“DNS轮询”实现的,【反向代理层】到【站点层】的负载均衡,是通过“nginx”实现的,【站点层】到【服务层】的负载均衡,是通过“服务连接池”实现的,然后开始经过中间件,Process_Request,如果Process_Request没有return,则程序会进入url,这时程序会检测用户有没有设置process_view,如果有,则接下来先执行process_view,,如果process_view没有return,程序会执行views文件中的函数,函数接下来会向models发送请求,models会把结果返回给视图函数views,然后views开始把结果先给process_template_response这个中间件的响应,经过它以后响应response,经process_response后就把结果响应给了浏览器。
image.png