Python - Web 网络服务器

网络服务器是计算机网络的核心部件。网络操作系统是在网络服务器上运行的,网络服务器的效率直接影响整个网络的效率。

Python 的用途广泛,足以创建多种类型的应用程序和程序来驱动互联网或其他计算机网络。 Internet 的一个重要方面是位于客户端服务器模型根部的 Web 服务器。 在本章中,我们将看到一些使用纯 Python 语言创建的 Web 服务器。


Gunicorn

Gunicorn 是一个独立的 Web 服务器,它有一个中央主进程,负责管理不同类型的已启动工作进程。 然后这些工作进程直接处理这些请求。 而这一切都可以配置和调整,以适应生产场景的多样化需求。

重要特征

  • 它支持 WSGI,可以与任何运行 Python 应用程序和框架的 WSGI 一起使用
  • 它也可以用作 Paster(例如:Pyramid)、Django 的开发服务器、web2py 等的直接替代品
  • 提供各种工作器类型/配置和自动工作器进程管理的选择
  • 通过同步和异步 worker 支持 HTTP/1.0 和 HTTP/1.1 (Keep-Alive)
  • 支持 SSL
  • 可通过 hooks 挂钩扩展

CherryPy WSGI 服务器

CherryPy 是一个独立的 Web 框架,因为它可以自行运行而无需额外的软件。 它有自己的 WSGI、HTTP/1.1 兼容的 Web 服务器。 因为它是一个 WSGI 服务器,所以它也可以用于服务任何其他 WSGI Python 应用程序,而无需绑定到 CherryPy 的应用程序开发框架。

重要特征

  • 它可以运行任何运行在 WSGI 上的 Python 网络应用程序。
  • 它可以处理静态文件,并且可以单独用于提供文件和文件夹。
  • 它是线程池。
  • 它支持 SSL。
  • 它是一种易于适应、易于使用的纯 Python 替代方案,而且功能强大且可靠。

Twisted Web

它是一个带有 Twisted 网络库的网络服务器。 虽然 Twisted 本身是"一个事件驱动的网络引擎",但 Twisted Web 服务器在 WSGI 上运行,并且能够为其他 Python Web 应用程序提供动力。

重要特征

  • 它可以运行 WSGI Python 应用程序
  • 它可以像 Python 网络服务器框架一样工作,允许您使用用于自定义 HTTP 服务目的的语言对其进行编程
  • 它通过在 HTTP 请求时执行的 Python 脚本 (.rpy) 提供简单快速的原型制作能力
  • 它具有代理和反向代理功能
  • 它支持虚拟主机
  • 它甚至可以为 Perl、PHP 等提供服务