基于OpenResty的api网关项目kong的学习曲线有些陡峭,如果要自主修改增删,至少需要掌握:nginx、nginx模块开发、lua语言、openresty中的多个模块,然后是kong。特别是如果要添加一些nginx不支持的特性,大概率要自己开发nginx模块,因此很有必要了解一下其它的API网关项目,多储备几个选择。
Envoy vs NGINX vs HAProxy: Why the open source Ambassador API Gateway chose Envoy中详细说明了Ambassador作为底层代理软件的原因。
简单总结一些:
haproxy,发展速度太慢,对SSL的支持、以及热加载(hitloss)的支持,都非常晚。
nginx,主要担心nginx公司推出了收费的nginx plus之后,社区版的更新会明显滞后。
envoy,选择它的原因是因为这个一个比较活跃的项目,lyft公司贡献的,背后没有太多的商业因素。
nginx-ingress vs kong vs traefik vs haproxy vs voyager vs contour vs ambassador vs istio ingress中对比了8个api网关项目。
作者的观点是: nginx-ingress是最稳定可靠的,Ambassador和Istio是比较前沿的,可以用来做POC。
painless-nginx-ingress中列出了多个使用nginx-ingress时需要注意的问题,非常值得一看。