使用Nginx在双栈环境下反向代理Http流量

最近,团队在进行微服务在双栈环境下提供服务的调研和改造工作。

工作一开始就遇到了瓶颈,我们的微服务目前均部署在K8s环境中,但我们用的K8s版本比较老,不支持IPv6。

想要实现微服务之间通过IPv6通信是不可能了。只能退而求其次,研究下用户从互联网上发起的访问能否支持双栈。

在典型的微服务使用场景中,一切外部流量均通过网关模块流到系统内部,似乎只需要想办法实现网关的双栈访问即可。

网关
我们用的微服务网关是基于Spring Cloud Gateway定制的,其底层使用了Spring WebFlux,再底层是Netty。

过去,我们通过Deployment+NodePort Service的方式暴露Gateway。

经测试,在低版本的K8s集群中,通过NodePort方式暴露的服务,无法通过IPv6的地址访问。(原因没有深究)

看来,目前NodePort是不能用了。还有一种比NodePort更粗暴的暴露方式,即HostNetwork,理论上应该是可以的。

本应直接验证下Spring Cloud Gateway使用HostNetwork暴露是否支持IPv6,但另一种方案突然浮现脑海。

第二种方案
第二种方案就是不直接暴露Gateway,而是在Gateway前面引入一个支持双栈的反向代理,即Nginx。

之所以会想到这种方案,是因为前段时间,前端有提过希望Gateway支持http2协议,但Netty现在还不支持。当时就有想过是否在Gateway前面再放一个nginx。

从上面的分析可以推断,Nginx同样不能使用NodePort暴露,需要使用HostNetwork。

要让Nginx在I

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值