高性能的 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自带完善的帮助文档,开发社区也很活跃,但相关的学习资料一一特别是中文资料较少。
这里给大家分享一份大佬多年使用OpenResty的经验,系统地阐述了OpenResty相关的各方面知识和要点,帮助我们快速掌握这个高效易用的Web开发平台,进而实现HTTP/HTTPS/TCP/UDP等多种网络应用。
内容展示
第1章总论
第2章Hginx平台
第3章Lua语言
第4章LuaJT环境
第5章开发概述
第6章基础功能
第7章HttP服务
第8章访问后端
第9章反向代理
第10章高级功能
第11章HTTPS服务
第12章HTTr2服务
第13章Websocket服务
第14章TCP/UDP服务