基于 CentOS 7 构建 LVS-DR 集群 及 配置nginx负载均衡

一、构建LVS-DR集群

1、主机规划

Node01:PC

Node02:LVS

Node03、Node04:Webserver

2、部署环境

2.1 在Node02上配置

2.1.1 安装ipvsadm管理软件按

bash 复制代码
[root@localhost ~]# yum install -y ipvsadm

2.1.2 配置VIP

bash 复制代码
[root@localhost ~]# ifconfig ens33:200 192.168.100.200 netmask 255.255.255.255

[root@localhost ~]# ip ad
ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.100.200/32 brd 192.168.100.255 scope global secondary ens33:200
       valid_lft forever preferred_lft forever
    

2.2 在Node03上配置

2.2.1 安装Apache服务

bash 复制代码
[root@localhost ~]# yum install -y httpd

2.2.2 编辑默认主页

bash 复制代码
[root@localhost ~]# echo "Web test page, ip is `hostname -I`." > /var/www/html/index.html

[root@localhost ~]# systemctl start httpd.service

2.3 在Node04配置

2.3.1 安装Apache服务

bash 复制代码
[root@localhost ~]# yum install -y httpd

2.3.2 编辑默认主页

bash 复制代码
[root@localhost ~]# echo "Web test page, ip is `hostname -I`." > /var/www/html/index.html

[root@localhost ~]# systemctl start httpd.service

2.4 在Node01上测试

bash 复制代码
[root@localhost ~]# curl 192.168.100.5
Web test page, ip is 192.168.100.5 .

[root@localhost ~]# curl 192.168.100.6
Web test page, ip is 192.168.100.6 .

3、绑定VIP

3.1 在Node03上配置

bash 复制代码
[root@localhost ~]# ifconfig lo:200 192.168.100.200 netmask 255.255.255.255 up

[root@localhost ~]# route add -host 192.168.100.200 dev lo

3.2 在Node04行配置

bash 复制代码
[root@localhost ~]# ifconfig lo:200 192.168.100.200 netmask 255.255.255.255 up

[root@localhost ~]# route add -host 192.168.100.200 dev lo

4、ARP抑制

4.1 在Node03上配置

bash 复制代码
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

4.2 在Node04行配置

bash 复制代码
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

5、在LVS(Node02)上添加RS

bash 复制代码
[root@localhost ~]# ipvsadm -A -t 192.168.100.200:80 -s rr

[root@localhost ~]# ipvsadm -a -t 192.168.100.200:80 -r 192.168.100.5:80 -g

[root@localhost ~]# ipvsadm -a -t 192.168.100.200:80 -r 192.168.100.6:80 -g

6、在PC(Node01)上进行测试

bash 复制代码
[root@localhost ~]# for ((i=1;i<=6;i++)); do curl 192.168.100.200; done

Web test page, ip is 192.168.100.6 .
Web test page, ip is 192.168.100.5 .
Web test page, ip is 192.168.100.6 .
Web test page, ip is 192.168.100.5 .
Web test page, ip is 192.168.100.6 .
Web test page, ip is 192.168.100.5 .

二、配置nginx负载均衡

1、部署环境

1.1 在Node03上配置

bash 复制代码
[root@localhost ~]# yum install -y httpd

[root@localhost ~]# echo "Web test page, ip is `hostname -I`." > /var/www/html/index.html

1.2 在Node04上配置

bash 复制代码
[root@localhost ~]# yum install -y httpd

[root@localhost ~]# echo "Web test page, ip is `hostname -I`." > /var/www/html/index.html

2、Node02 配置虚拟主机

2.1 编辑配置文件

bash 复制代码
[root@localhost ~]# cd /etc/nginx/conf.d/

[root@localhost conf.d]# vim vhost.conf
server{
  listen 80;
  server_name www1.openlab.cn;

  location / {
    proxy_pass http://192.168.100.5;
  }
}

server{
  listen 80;
  server_name www2.openlab.cn;

  location / {
    proxy_pass http://192.168.100.6;
  }
}
bash 复制代码
[root@localhost conf.d]# vim lb.conf
upstream www_pools {
  server 192.168.100.5:80 weight=1;
  server 192.168.100.6:80 weight=2;
}

server {
  listen 80:
  server_name www.yunjisun.com;

  location / {
  proxy_pass http://www_server_pools;
  }
}

2.2 启动nginx

bash 复制代码
[root@localhost ~]# systemctl start nginx

3、PC端(Node01)测试

bash 复制代码
[root@localhost ~]# for ((i=1;i<=9;i++)); do curl http://www.yunjisuan.com; done
相关推荐
先生沉默先2 小时前
Docker学习日志-Docker容器配置、Nginx 配置与文件映射
学习·nginx·docker
π大星星️6 小时前
Nginx 四层(stream)反向代理 + DNS 负载均衡
运维·nginx·负载均衡
岚天start14 小时前
云服务器以域名形式访问机房Kubernetes集群服务之解决方案
nginx·docker·kubernetes·kubesphere·解决方案·云服务器·机房
梅孔立14 小时前
CentOS 7 安装 dnsmasq 解决nginx无法指定dns的问题
linux·nginx·centos
二向箔reverse19 小时前
在 CentOS 中安装 MySQL 的过程与问题解决方案
linux·mysql·centos
写bug的羊羊1 天前
CentOS 9 配置国内 YUM 源
linux·运维·centos
angushine2 天前
鲲鹏服务器logstash采集nginx日志
运维·服务器·nginx
土豆丶杨2 天前
centos 配置docker
docker·eureka·centos
会飞的青蛙2 天前
从购买服务器,到Ubuntu + Docker + Jenkins 部署,再到网页展示!
nginx·ci/cd·jenkins
水痕012 天前
nginx一个域名下部署多套前端项目
运维·前端·nginx