如何部署你的python web应用(一)

学习python web 应用程序很长时间了,可是对python web 的部署一直比较模糊,需要整理一下,由于很多问题已经有说得很清楚的优秀文章,所以先留存链接。

准备知识:


不幸的是,与Python世界中的大多数事情不同,当涉及到选择生产服务器堆栈来部署应用程序时,并没有一个明显最好的选择。
衡量你的需求和要求后,你才能够决定使用哪个服务器。我们首先关注的是该web服务器的人气,稳定性和突出特点。要注意的是:警惕有偏见和欺骗性的基准,这些基准往往不能反映真实生产环境的条件。


Python Web Server Gateway Interface v1.0 (WSGI)

问题

在上个世纪,开发人员并不能轻松地切换web服务器,选择了一个web应用程序框架往往也意味着决定了相应的web服务器。这是由于缺乏普遍的接口规范:应用程序(框架)和Web服务器都应该适配的用于互相通信的规则(允许在不改变代码下的互换性)。

标准的诞生

在本世纪初,Python社区提出PEP-333来解决这个问题:

This document specifies a proposed standard
interface between web servers and Python web
applications or frameworks, to promote web
application portability across a variety of
web servers.

这个新标准意味着保障Web服务器和Python Web应用程序之间的可移植性。该标准的强大特性和广泛采用形成了今天的局面:存在着许多( 也许是太多 :) )愿意为你工作的web服务器。


Python Web服务器(按字母排序)

  1. CherryPy WSGI Server
  • Gunicorn
  • Tornado (HTTP Server via wsgi.WSGIContainer)
  • Twisted Web
  • uWSGI
  • Waitress WSGI Server
  • Modules for Stand-Alone Servers
    mod_python with a WSGI adapter (Apache) (Embedding Python)

详细比较请看:
Python Web应用程序(如Django,Flask)的Web服务器比较


nginx处理静态文件,转发其他请求到uwsgi
[最大吞吐量 (网络框架的基本成本)](http://brianmcdonnell.github.io/pycon_ie_2013/#/) - Weighttp用于对web服务器做简单的压力测试

其它链接

WSGI Servers - Full Stack Python
Web Servers and Python - Python Wiki
Web Frameworks for Python - Python Wiki
WSGI接口 - 廖雪峰python教程
WSGI简介 - Segmentfault
第一次写web就上手 - 台湾python wiki群组

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • 原文:https://legacy.python.org/dev/peps/pep-3333 PEP:3333标题...
    老周_o_o阅读 7,032评论 0 5
  • 学过PHP的都了解,php的正式环境部署非常简单,改几个文件就OK,用FastCgi方式也是分分钟的事情。相比起...
    chen_000阅读 6,447评论 0 1
  • 今晚 我跟一个我自认为在大学“最好的”朋友撕逼了。她是正正宗宗从大城市来的有钱人家的女孩子,说话永远透露着一股高高...
    谦哥xxx阅读 3,188评论 4 5

友情链接更多精彩内容