人们常说,既然有nginx作为网关,为什么要使用网关呢
首先,这两种网关的定义不同
用户访问的总入口,即前端页面上的容器、流量网关
网关的定义针对所有业务微服务,属于业务网关
参考一个图
具体的后端业务APP应用或与服务和业务有一定关联的策略网关是上图左侧的体系结构模型——业务网关。 业务网关根据特定业务需求提供特定的流控制策略、缓存策略、身份验证策略等。
与业务网关相反,上图右侧所示的体系结构模型——流量网关定义了与特定后端业务APP应用程序或服务完全无关的全局策略网关。 网关通常侧重于全局Api管理策略,如全局流量监视、日志记录、总限制流、黑白列表控制和业务系统访问请求负载平衡。 和防火墙很像。 Kong是典型的流量网关。
这里要补充的是,业务网关通常部署在业务网关之后,然后部署在业务系统之前,比业务网关更接近业务系统。 通常,API网络是指业务网关。 由于业务网关和业务网关可能会变得模糊,从而将所有工作都交给一个网关,因此两者之间没有严格的边界。
nginx和网关之间的区别:
nginx是用c语言编写的,对于自定义扩展,是写c还是写lua
网关是java语言的框架,可以在框架上扩展和控制代码。 例如,安全控制、统一异常处理、XXS、SQL注入等; 权限管理、黑白列表、性能监视、日志打印等
网关的主要功能是路由、断言和过滤器,利用这些特性可以进行流量控制。
nginx经常作为网关进行总流量条目、反向代理、负载平衡等,也可以作为web服务器使用。