使用Nginx作为微服务API网关

我们正在将我们的巨无霸API分成微服务。

我们不需要速度限制,authentication,caching或任何其他网关,如能力。

使用非常简单的无状态Nginx容器路由到底层服务是否是一种有效的方法?

是的,Nginx可以是一个部署和一个服务(loadbalancer或externalIPtypes),并可以转发到上游服务。

尽pipe(在添加/删除服务时)可能需要经常更改nginx.conf,所以我build议使用ConfigMap来保留nginx.conf,并将其作为卷加载到您的部署中。 请参阅: http : //kubernetes.io/docs/user-guide/configmap/并向下滚动以通过卷使用configmap。

另外需要注意的是,如果删除并创build一个在nginx.conf中引用的服务作为上游服务,则必须重新启动部署,因为当nginx启动时,nginx会parsing所有服务DNS标签。

nginx入口控制器将完成这项工作: https : //github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx