如题:关于一个Nginx做负载均衡的问题?
就是在一台有公网IP地址的电脑上面安装nginx然后通过配置代理实现负载,但问题就是这台电脑已经配置很高还是扛不住并发呢,那么现在问题就是同一个域名只能指定到一个公网IP地址上,那这时候怎么办?但我有了解就是可以用F5硬件来解决,F5负载了到下一个装有nginx负载的服务器然后在负载,如下图
在网络也有看到说用DNS负载均衡的实现同一个域名指定多个公网IP地址,但弊端也很多,如果用DNS做,但dns都是dns服务商或者全球那几台服务器弄的,这个怎么实现啊,这一点也还请懂的大神指教下。
另外就是用nginx那又是怎么实现的?????
引用来自“neo-chen”的评论
你的问题是,所有浏览经过一个域名进入了nginx, 即使nginx后面有多台服务器也无济于事?
简单。你在nginx前面增加一个 LVS,是用 DR模式。三角路由。
User --> LVS --> Nginx 1, Nginx 2 ... --> Application 节点。
这样就解决了你的问题。有问题可以去我网站找文档 http://www.netkiller.cn
F5, Array, A10 也是软负载:)
除非用FPGA写的集成电路实现。否则设备里面都是软件实现,没有本质区别。
有兴趣可以看我的问题 <<Netkiller Network 手札>> 里面有解刨 F5, Array 的章节。
你的问题是,所有浏览经过一个域名进入了nginx, 即使nginx后面有多台服务器也无济于事?
简单。你在nginx前面增加一个 LVS,是用 DR模式。三角路由。
User --> LVS --> Nginx 1, Nginx 2 ... --> Application 节点。
这样就解决了你的问题。有问题可以去我网站找文档 http://www.netkiller.cn
同一个域名只能指定到一个公网IP地址上: 这个说法不对,同一个域名可以动态绑定到多个 IP,DNS 有这个服务。否则都是访问淘宝首页,北京和海南就不会访问各自对应的 CDN 了。
你上面说的方式,相当于多个nginx多个外网服务器实现负载,可以说这样的解决方式很low。
一般集群是通过内网服务器解决的,一台服务器有一个外网IP,一个nginx,作为出入口,同时,你有多台内网互通的服务器,每台服务器上都有部署项目,然后通过nginx的upstream上游指向你的多个内网服务器IP及端口,就实现了最基本的负载均衡!