如果你意识到它们并不相互排斥,那么更容易思考它们。将API网关视为特定类型的反向代理实现。
关于您的问题,通常会将API网关视为位于反向代理后面的应用程序层以进行负载平衡和运行状况检查,这两种情况并不常见。一个例子就像是WAF三明治体系结构,因为你的Web应用程序防火墙/ API网关被反向代理层夹在中间,一个用于WAF本身,另一个用于它所谈论的各个微服务。
关于差异,它们非常相似。这只是命名法。当您采用基本的反向代理设置并开始使用更多部分(例如身份验证,速率限制,动态配置更新和服务发现)时,人们更有可能将其称为API网关。
我相信,API Gateway是一个反向代理,可以通过API动态配置,也可以通过UI动态配置,而传统的反向代理(如Nginx,HAProxy或Apache)是通过配置文件配置的,必须在配置更改时重新启动。因此,当路由规则或其他配置经常更改时,应使用API网关。对你的问题:
此外,API网关通常以SAAS的形式提供,例如 Apigee 要么 TYK 例如。
另外,这是我的如何使用Node.js创建简单API网关的教程 https://memz.co/api-gateway-microservices-docker-node-js/
希望能帮助到你。