高性能的 Web 服务器

nginx,它资源占用少,处理能力高,是搭建网站的首选。

虽然 Nginx 成为了 Web 服务器领域无可争议的“王者”,但它也并不是没有缺点的,毕竟它已经 15 岁了。

“一个人很难超越时代,而时代却可以轻易超越所有人”,Nginx 当初设计时针对的应用场景已经发生了变化,它的一些缺点也就暴露出来了。

Nginx 的服务管理思路延续了当时的流行做法,使用磁盘上的静态配置文件
,所以每次修改后必须重启才能生效。这在业务频繁变动的时候是非常致命的(例如流行的微服务架构

),特别是对于拥有成千上万台服务器的网站来说,仅仅增加或者删除一行配置就要分发、重启所有的机器,对运维是一个非常大的挑战,要耗费很多的时间和精力,成本很高,很不灵活,难以“随需应变”。

那么,有没有这样的一个 Web 服务器,它有 Nginx 的优点却没有 Nginx 的缺点,既轻量级、高性能,又灵活、可动态配置呢?

这就是我今天要说的 OpenResty,它是一个“更好更灵活的 Nginx”。
OpenResty 是什么?

OpenResty 诞生于 2009 年。它的创造者
是当时就职于某宝的“神级”程序员

章亦春,网名叫“agentzh”。

OpenResty 并不是一个全新的 Web 服务器,而是基于 Nginx,它利用了 Nginx 模块化、可扩展的特性,开发了一系列的增强模块,并把它们打包整合,形成了一个 “一站式”的 Web 开发平台。

虽然 OpenResty 的核心是 Nginx,但它又超越了 Nginx,关键就在于其中的 ngx_lua 模块,把小巧灵活的 Lua 语言嵌入了 Nginx,可以用脚本的方式操作 Nginx 内部的进程、多路复用

、阶段式处理等各种构件。

脚本语言
的好处你一定知道,它不需要编译,随写随执行,这就免去了 C 语言编写模块漫长的开发周期。而且 OpenResty 还把 Lua 自身的协程与 Nginx 的事件机制完美结合在一起,优雅地实现了许多其他语言所没有的“同步非阻塞

”编程范式,能够轻松开发出高性能的 Web 应用。
虽然Nginx仍然是核心,但看得出openResty有淡化自身“Nginx Bundle"色彩的趋势,力图成为一个更伟大的存在。

OpenResty自带完善的帮助文档,开发社区
也很活跃,但相关的学习资料一一特别是中文资料较少。

 

 

简介: Nginx、OpenResty、Kong 的基本概念和区别联系 Nginx、OpenRestry、Kong 这三个项目关系比较紧密: Nginx 是模块化设计的反向代理软件,C语言开发; OpenResty 是以 Nginx 为核心的 Web 开发平台,可以解析执行 Lua 脚本 Kong 是 OpenResty 的一个应用,是一个 API 网关,具有API管理和请求代理的功能。
Nginx、OpenResty、Kong 的基本概念和区别联系
Nginx、OpenRestry、Kong 这三个项目关系比较紧密:

Nginx 是模块化设计的反向代理软件,C语言开发;
OpenResty 是以 Nginx 为核心的 Web 开发平台,可以解析执行 Lua 脚本
Kong 是 OpenResty 的一个应用,是一个 API 网关,具有API管理和请求代理的功能。
Nginx
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.

作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

OpenResty
OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

Kong
Kong 是 API 管理的强大效率工具。对需要从事 API 管理的广大开发员来说,它是最出色的工具之一。Kong 是开源工具,具有可扩展性和模块性,可以在任何一种基础设施上运行。多年来,Kong 一直在支持优秀的开发项目,比如 Mashape(世界上规模最大的API市场)。最棒的是,Kong得到了强大的 Nginx 的支持。

Kong的主要特性

Kong 的扩展性:只要增添更多的服务器实例,它就能横向扩展,毫无问题,那样你可以支持更多流量,同时确保网络延迟很短。
Kong 的灵活性:它可以部署在单个或多个数据中心环境的私有云或公有云上。它还支持大多数流行的操作系统,比如Linux、Mac和Windows。Kong包括许多实用技巧,以便针对大多数现代平台完成安装和配置工作。
Kong 的模块性:它可以与新的插件协同运行,扩展基本功能。可将你的API与许多不同的插件整合起来,以增强安全、分析、验证、日志及/或监测机制。最好的例子之一就是Nginx Plus插件(https://getkong.org/plugins/nginx-plus-monitoring/),该插件提供了服务器实时监测机制,以获得关于负载和请求的度量指标和统计数字。
Kong 的生态:虽然 Kong 是开源工具,可供每个人免费使用,但你也能获得企业版,企业版通过电子邮件、电话和聊天提供了快速支持,此外还提供初始安装、从第三方API管理工具来迁移、紧急补丁、热修复程序及更多特性。
小结
Nginx、OpenRestry、Kong 的关系就描述到这里。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。