python网络服务wsgi及相关
来源:互联网 发布:如何让mac休眠不断网 编辑:程序博客网 时间:2024/06/08 04:13
1,什么是wsgi:
3,guicorn, gevent ,uwsgi
这些都是基于wsgi协议实现的Python http 服务器
4,Nginx
("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
相关关系
有太多的文章告诉我们nginx uwsgi django 这些东西怎么用了,太多的人知道这些东西的怎么使用,怎么配置,怎么优化,但是还是有一部分人比如我这种水货不知道这些东西到底是啥,为啥一个项目的发布要经过这么多层级,他们每一层都做了什么,都是必须的吗
1 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx,
2nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静态文件请求就直接访问用户给nginx配置的静态文件目录,直接返回用户请求的静态文件,
如果不是静态文件,而是一个动态的请求,那么nginx就将请求转发给uwsgi,uwsgi 接收到请求之后将包进行处理,处理成wsgi可以接受的格式,并发给wsgi,wsgi 根据请求调用应用程序的某个文件,某个文件的某个函数,最后处理完将返回值再次交给wsgi,wsgi将返回值进行打包,打包成uwsgi能够接收的格式,uwsgi接收wsgi 发送的请求,并转发给nginx,nginx最终将返回值返回给浏览器。
3要知道第一级的nginx并不是必须的,uwsgi完全可以完成整个的和浏览器交互的流程,但是要考虑到某些情况
1 安全问题,程序不能直接被浏览器访问到,而是通过nginx,nginx只开放某个接口,uwsgi本身是内网接口,这样运维人员在nginx上加上安全性的限制,可以达到保护程序的作用。
2负载均衡问题,一个uwsgi很可能不够用,即使开了多个work也是不行,毕竟一台机器的cpu和内存都是有限的,有了nginx做代理,一个nginx可以代理多台uwsgi完成uwsgi的负载均衡。
3静态文件问题,用django或是uwsgi这种东西来负责静态文件的处理是很浪费的行为,而且他们本身对文件的处理也不如nginx好,所以整个静态文件的处理都直接由nginx完成,静态文件的访问完全不去经过uwsgi以及其后面的东西。
这就是这几者之间的关系。
- python网络服务wsgi及相关
- python当中的wsgi相关包
- python WSGI
- python +wsgi
- Python WSGI
- Python WSGI
- python WSGI
- 捉摸Python的WSGI
- Python WSGI fastcgi
- Windows+Python+Apache+wsgi
- Linux+Python+Apahce+wsgi
- 转: Python WSGI fastcgi
- Python的WSGI
- Python的WSGI
- Python的WSGI框架
- [python web]wsgi初探
- python的 WSGI 简介
- python wsgi pep333 中文翻译
- Jackson学习一之对象与JSON互相转化
- 动手写一个Caffe层:矩阵相乘Matmul
- Java 8十个lambda表达式案例
- IT-rsync--使用记录
- 8.2 喀迈拉(no.41~no.44)
- python网络服务wsgi及相关
- 【JZOJ 4709】 Matrix
- Android中Activity之间参数传递
- Spring与JMX集成
- Linux Shell case语句
- mysql主从分离解决办法
- 16、canvas标签之功能插件
- 关于Javaweb路径问题
- linux中如何查看文件的大小