前言:
而今各位老铁们对“nginx水平扩展”可能比较注意,兄弟们都想要剖析一些“nginx水平扩展”的相关文章。那么小编同时在网摘上网罗了一些有关“nginx水平扩展””的相关内容,希望看官们能喜欢,你们快快来了解一下吧!域名解析是客户端访问系统的第一步。在架构设计中,DNS Server除了解析域名,还能干点什么呢?又有哪些“挖坑”的用法需要避免呢?
典型的互联网架构中,我们通过nginx的反向代理来做负载均衡。客户端通过域名访问时,DNS Server将域名解析到nginx服务器的IP,客户端先访问nginx,nginx再将请求分发到下层的web-server。
我们可以通过增加web-server来扩充web层的性能,但nginx仍是整个系统的唯一入口。如果系统吞吐超过nginx的单机性能极限,此时就需要通过DNS轮询来水平扩展nginx了。
具体做法是:增加多台nginx,对于同一个域名配置多个ip,每个ip指向一台nginx。每次DNS解析,会轮询返回不同的ip,这样就能实现nginx的水平扩展了。
既然DNS轮询可以将请求分派到不同的ip上,那可不可以去掉nginx,直接用DNS轮询来做负载均衡呢?
通过DNS来实施负载均衡虽然能减少一层网络请求,但也有问题。
首先,DNS只具备解析功能,并不能保证ip对应的服务器可用。而nginx做反向代理时,与web-server之间有保活探测机制,当web-server挂掉时,能够自动迁移流量;
其次,当web-server需要扩容时,虽然可以通过增加域名解析的ip来实现扩容,但解析的生效时间长,而nginx则是完全自己可控,扩容更实时、更方便。
因为上面两个原因,所以架构上,一般都使用nginx来做高可用反向代理。
关注【老张聊架构】,成为百万年薪架构师!
标签: #nginx水平扩展