基于 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
相关推荐
Justin_191 小时前
Galera Cluster部署
linux·服务器·nginx
苹果醋36 小时前
学习札记-Java8系列-1-Java8新特性简介&为什么要学习Java8
java·运维·spring boot·mysql·nginx
qyhua10 小时前
从零部署自维护版 Uptime Kuma:Node.js + PM2 + Nginx 全链路实战指南
运维·nginx·node.js
runepic11 小时前
阿里云 CentOS 磁盘扩容记录:resize2fs 版本过低导致无法扩容的解决方案
服务器·阿里云·centos·云计算·1024程序员节
睡不醒的猪儿14 小时前
nginx日志同步阿里云datahub后写入数据库
数据库·nginx·阿里云
耿雨飞16 小时前
Nginx代理服务应用实战:HTTP代理模块、正向代理、反向代理与TCP/UDP代理详解
nginx
Wang's Blog19 小时前
Linux小课堂: CentOS 7 Minimal 服务器安装与网络配置实战详解
linux·服务器·centos
key_Go1 天前
0.基于Centos-Stream8 搭建Openstack环境
linux·运维·centos·openstack
wacpguo1 天前
centos 配置网络
linux·网络·centos
半梦半醒*1 天前
ELK1——elasticsearch
linux·运维·数据仓库·elasticsearch·centos