引个流,不知道是否可以
既没有能力也没有洁癖去考古整个 nginx 相关的历史进程, 只是简单的解释几个易混淆的术语, 提高相关同学的日常使用体验.
在 Google 中搜索 nginx 相关的内容时, 会高频的遇到两个网站: nginx.org 和 nginx.com.
nginx.org 对应开源版本的 nginx, nginx.com 对应商业版本的 nginx plus. 两者在功能和配置上显然并不完全等价, 查询相关特性和配置时需要根据自己使用的版本的多加注意.
大部分情况下, 我们使用的都是开源版本 nginx.
我是在 kubernetes(k8s) 中频繁的接触 ingress 这个概念的. ingress 在 k8s 中用于管理外部对集群服务的访问, 是抽象的规则, 需要具体的 ingress controller 来监听这些规则并完成实际的工作.
nginx 显然是 ingress controller 的非常主流的选择. nginx 和 nginx plus 都可以做为 [ingress controller], 官方实现在 nginxinc/kubernetes-ingress, 文档可以参考 nginx-ingress-controller. 还是那句话, 注意区分那些只在 [nginx plus] 提供的功能和配置.
但是, 我们在 k8s 中使用的 nginx ingress controller 大部分时候不是上述的实现, 惊不惊喜, 意不意外. k8s 自己基于 nginx 实现了一个 ingress-controller, 即 kubernetes/ingress-nginx.
如果想要区分当前的部署使用的是上述三者的哪一种, 比较好的方法是观察 image:
openresty 是由 agentzh 维护的, 基于 nginx 和 LuaJIT 的反向代理和负载均衡. 我粗浅的理解就是, 古早之前, agentzh 为 nginx 加入 LuaJIT 和大量三方库后, 为了快速响应一些性能和质量问题而维护的一个 nginx 版本.
当然, nginx 也在很早之前支持了 lua 做为动态脚本.
1
seers 2022-11-15 22:14:55 +08:00
kubenetes/ingress-nginx 是基于开源 nginx 版本,由 k8s 官方维护
nginxinc/kubernetes-ingress 由 F5 NGINX 维护,存在开源版和商业版本,可以付费切换 |