Kong 如何在 NGINX 和 OpenResty 之上工作
How does Kong work over NGINX and OpenResty
据我所知,NGINX 是用 C 语言编写的,并且有一个 lua 插件,允许在其中嵌入 lua 代码。 OpenResty 是一个在此基础上扩展的框架,并允许对 NGINX 提供更好的 Lua 支持。 Kong 是特定的 OpenResty 应用程序。因此,当我们 post 新服务、消费者等都转换为 lua 由 LuaJIT 编译的模板。如果是这样,是否意味着每次我添加服务时,我的 nginx.conf 文件都会重建?
还是在每次请求时都查询 kong 配置数据库(或 yaml)以获取依赖端点(这会非常慢)?
或者完全不同的东西?
将像 Lua 这样的脚本语言嵌入到 nginx 中的全部意义在于,您可以即时更改其行为,而无需重新加载整个配置。我不知道 kong 究竟是如何处理事情的,但是你可以在运行时加载新的 Lua 代码,尽管在大多数情况下它足以更改 Lua 代码然后在预定义方式。
据我所知,NGINX 是用 C 语言编写的,并且有一个 lua 插件,允许在其中嵌入 lua 代码。 OpenResty 是一个在此基础上扩展的框架,并允许对 NGINX 提供更好的 Lua 支持。 Kong 是特定的 OpenResty 应用程序。因此,当我们 post 新服务、消费者等都转换为 lua 由 LuaJIT 编译的模板。如果是这样,是否意味着每次我添加服务时,我的 nginx.conf 文件都会重建? 还是在每次请求时都查询 kong 配置数据库(或 yaml)以获取依赖端点(这会非常慢)? 或者完全不同的东西?
将像 Lua 这样的脚本语言嵌入到 nginx 中的全部意义在于,您可以即时更改其行为,而无需重新加载整个配置。我不知道 kong 究竟是如何处理事情的,但是你可以在运行时加载新的 Lua 代码,尽管在大多数情况下它足以更改 Lua 代码然后在预定义方式。