前言:
无论是Ngnix、OpenResty,还是Kong,都是一种高性能的HTTP和反向代理服务器,其中OpenResty和Kong的核心是Nginx,在Ngnix的基础上进行一些功能的优化。所以在了解OpenResty和Kong之前都离不开对Ngnix的理解。
官网地址:
- Ngnix:http://nginx.org/en/
- OpenResty:http://openresty.org/cn/
- Kong:https://konghq.com/
一、简介
1、背景:
Nginx 是俄罗斯人编写的轻量级的、高性能的HTTP 和反向代理服务器。Nginx 因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名,它的内存消耗少,成本低,并且可以支持5W高并发连接;Openresty打包了标准Nginx核心和常用的第三方模块以及发多数依赖,在Nginx的基础上主要添加了对lua脚本的支持,使得Ngnix能够灵活处理更多较为复杂的运算逻辑;Kong的核心同样是Nignx,它可以通过访问搭建好的Kong管理端RESTful接口动态配置Nginx配置文件,可以通过界面工具进行配置,也可以通过程序中自动注册,使得配置更加灵活。在OpenResty的基础上,Kong提供了丰富的插件,可利用插件生成很多配置文件,进行流量控制、IP控制、分析监控等。本文主要从Ngnix出发,再对OpenResty和Kong进行简单介绍。
2、Nginx的作用
- 网关
面向服务调用的总入口。
- 虚拟主机
一台机器可以为不同域名/ip/端口提供服务
- 路由
使用反向代理,整合后续服务为一个完整业务。
- 静态服务器
可以在MVVM模式中,用来发布前端html/css/js/img等静态资源文件。
- 负载集群
使用upstream,可以负载多个应用服务器。
二、架构及相关模块
1、相关模块
- 核心模块
核心模块是Nginx 服务器正常运行必不可少的模块,提供错误日志记录、配置文件解析、事件驱动机制、进程管理等核心功能。
- 标准HTTP 模块
标准HTTP 模块提供HTTP 协议解析相关的功能,如:端口配置、网页编码设置、HTTP响应头设置等。
- 可选HTTP 模块
可选HTTP 模块主要用于扩展标准的