LVS-DR部署
[客户端]
node1
192.168.157.148
[lvs]
node2
192.168.157.142
[web服务器]
node3
192.168.157.145
node4
192.168.157.146
(1)[lvs]
yum install -y ipvsadm.x86_64
配置LVS负载均衡服务
(1)手动添加LVS转发
1)用户访问:www.uolookking.com-->vip 192.168.157.200 ##==>这个是在DNS配置
没有配置DNS可以使用hosts文件配置方式来实现域名解析。
192.168.157.200 www.hzitedu.com
2)配置LVS虚拟IP(VIP)
[root@localhost ~]# ifconfig ens33:200 192.168.157.200/24
(2)[web服务器:node3,node4]
(1)安装配置http服务
(2) 绑定vip(192.168.157.200)
systemctl restart network重启网络服务
node3:
创建环回接口
[root@localhost ~]# ifconfig lo:200 192.168.157.200 netmask 255.255.255.255 up
添加本机访问VIP的路由
[root@RS1 ~]# route add -host 192.168.157.200 dev lo
node4:
创建环回接口
[root@localhost ~]# ifconfig lo:200 192.168.157.200 netmask 255.255.255.255 up
添加本机访问VIP的路由
[root@RS1 ~]# route add -host 192.168.157.200 dev lo
(3) 手工在RS端抑制ARP响应
每台real server端执行
调整内核参数,关闭arp响应
node3:
[root@RS1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@RS1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@RS1 ~]# echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore (/ens33/arp_ignore此处写RS使用的网卡)
[root@RS1 ~]# echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce(/ens33/arp_announce此处写RS使用的网卡)
(3)[lvs]
手工执行配置添加LVS服务并增加两台RS
[root@localhost ~]# ipvsadm -A -t 192.168.157.200:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.157.200:80 -r 192.168.157.145:80 -g
[root@localhost ~]# ipvsadm -a -t 192.168.157.200:80 -r 192.168.157.146:80 -g
[删除方法]
# ipvsadm -D -t 192.168.79.110:80 -s wrr
# ipvsadm -d -t 192.168.79.110:80 -r 192.168.79.118:80
[相关参数说明]
[root@Directory ~]# ipvsadm –help
-A 添加虚拟服务器
-t 设置群集地址(VIP,Virtual IP)
-s 指定负载调度算法
-a 添加真实服务器
-d 删除真实服务器
-r 指定真实服务器(Real Server)的地址
-m 使用NAT模式;-g、-i分别对应DR、TUN模式
-w 为节点服务器设置权重,默认为1
[root@Directory ~]# ipvsadm –Ln
查看负载均衡
nginx负载均衡
配置
[client]
node1
[service:nginx]
node2
#安装nginx做负载均衡
[web]
node3
node4
#vim /etc/nginx/conf.d/vhost.conf
[service:nginx]
upstream pools {
server 192.168.157.145:80 weight=1;
server 192.168.157.146:80 weight=1;
}
server {
listen 80;
server_name www.pool.com;
location / {
proxy_pass http://pools;
}
access_log /usr/share/nginx/logs/node4/access_pool.log ;
error_log /usr/share/nginx/logs/node4/access_pool_error.log ;
}
####################################################
Nginx做负载均衡访问网页时报错:HTTP Status 400 – 错误的请求
可能原因:
根据浏览器报错的提示消息,意思为:在一个域名中使用字符“_”是不正确的;
原来问题出在了nginx主配置文件中给后端tomcat服务器池起的名字上,不支持下划线
[web]
使用http服务
[node3]
[root@localhost ~]# cat /var/www/html/index.html
node3
[node4]
[root@localhost ~]# cat /var/www/html/index.html
node4
[client]
#vim /etc/hosts
192.168.157.142 www.node3.com www.node4.com www.pool.com
(添加域名)
结果: