这篇文章给大家介绍Nginx中怎样实现负载均衡,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站主要从事网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务丰县,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
还是图比较清晰,以下我都用别名称呼:
PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com P1 : WEB服务器/分身1/192.168.2.3 P2 : WEB服务器/分身2/192.168.2.4 P3 : WEB服务器/分身3/192.168.2.5
PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。
首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)
装完之后哈,我们先找到 PA 的nginx.conf配置文件
在http段加入以下代码:
upstream servers.mydomain.com { server 192.168.2.3:80; server 192.168.2.4:80; server 192.168.2.5:80; }
当然嘛,这servers.mydomain.com随便取的。
那么PA的server配置如下:
在http段加入以下代码:
server{ listen 80; server_name www.mydomain.com; location / { proxy_pass http://servers.mydomain.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
那么P1、P2、P3的配置如下:
server{ listen 80; server_name www.mydomain.com; index index.html; root /data/htdocs/www; }
upstream servers2.mydomain.com { server 192.168.2.3:8080; server 192.168.2.4:8081; server 192.168.2.5:8082; } server{ listen 80; server_name www.mydomain.com; location / { proxy_pass http://servers2.mydomain.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
那么P1的配置如下:
server{ listen 8080; server_name www.mydomain.com; index index.html; root /data/htdocs/www; }
P2配置:
server{ listen 8081; server_name www.mydomain.com; index index.html; root /data/htdocs/www; }
P3配置:
server{ listen 8082; server_name www.mydomain.com; index index.html; root /data/htdocs/www; }
重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略
优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。
nginx的配置也很简单,代码如下:
upstream servers2.mydomain.com { server 192.168.2.3:8080; server 192.168.2.4:8081; server 192.168.2.5:8082; ip_hash; }
关于Nginx中怎样实现负载均衡就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。