一、环境说明
- 使用lvs中的nat模型,对apache负载均衡集群。
主机IP | 角色 | 安装服务 |
---|---|---|
真实IP:192.168.161.129 VIP:192.168.161.130 | 调度服务器 | lvsadm |
192.168.161.131 | 后端服务器1 | httpd,80端口 |
192.168.161.132 | 后端服务器2 | httpd,8080端口 |
一、配置调度器网卡
1.配置两个网卡。
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR0=192.168.161.129
PREFIX=24
GATEWAY=192.168.161.2
DNS1=114.114.114.114
IPADDR1=192.168.161.130
PREFIX=24
//重启网卡。
systemctl restart network
2.本机能ping通这调度器。
二、配置后端服务器
1.两台后端服务器都安装httpd服务。
//第一台。
yum -y install httpd net-tools
echo 'RS1' > /var/www/html/index.html
systemctl enable --now httpd
//第二台,修改监听端口为8080。
yum -y install httpd net-tools
echo 'RS2' > /var/www/html/index.html
vim /etc/httpd/conf/httpd.conf
Listen 8080 //将此处变成8080
systemctl enable --now httpd
2.访问两个网页。
3.配置两台后端服务器的网关信息。
//第一台。
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.161.131
PREFIX=24
GATEWAY=192.168.161.129 //只想调度器的VIP。
DNS1=114.114.114.114
//重启网卡,查看路由。
systemctl restart network
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.161.129 0.0.0.0 UG 100 0 0 ens33
192.168.161.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
//第二台。
cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.161.132
PREFIX=24
GATEWAY=192.168.161.129 //只想调度器的VIP。
DNS1=114.114.114.114
//重启网卡,查看路由。
systemctl restart network
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.161.129 0.0.0.0 UG 100 0 0 ens33
192.168.161.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
三、配置调度器
- 调度器服务器上操作。
1.开启dr的ip转发功能。
//添加如下一行。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
//重新读取
sysctl -p
2.在dr上添加并保存规则。
ipvsadm -A -t 192.168.161.130:80 -s rr
//添加后端服务器。
ipvsadm -a -t 192.168.161.130:80 -r 192.168.161.131:80 -m
ipvsadm -a -t 192.168.161.130:80 -r 192.168.161.132:8080 -m
//查看。
ipvsadm -ln
//保存。
ipvsadm -Sn > /etc/sysconfig/ipvsadm
四、验证
- 在调度器上验证。
1.访问调度器的vip,查看结果。
五、设置https负载均衡
1.后端服务器上生成证书。
//CA生成一对密钥。
cd /etc/pki/CA
(umask 077;openssl genrsa -out private/cakey.pem 2048) #生成密钥,括号必须要
openssl rsa -in private/cakey.pem -pubout #提取公钥
//CA生成自签署证书。
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365 #生成自签署证书
openssl x509 -text -in cacert.pem #读出cacert.pem证书的内容
mkdir certs newcerts crl
touch index.txt && echo 01 > serial
//客户端服务器生成密钥,哪个服务需要证书就在哪台服务器上生成,这里就是在httpd所在的服务器上生成。
cd /etc/httpd && mkdir ssl && cd ssl
(umask 077;openssl genrsa -out httpd.key 2048)
//客户端生成证书签署请求。
openssl req -new -key httpd.key -days 365 -out httpd.csr
//客户端把证书签署请求文件发送给CA服务器,CA签署客户端提交上来的证书。
openssl ca -in httpd.csr -out httpd.crt -days 365
2.启动ssl模块。
yum -y install mod_ssl
3.指定证书位置。
vim /etc/httpd/conf.d/ssl.conf
//将这两行注释取消。
DocumentRoot "/var/www/html"
ServerName www.example.com:443
//修改证书存放位置
SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
4.重启服务,https访问。
systemctl restart httpd
5.调度服务器设置规则。
ipvsadm -A -t 192.168.161.130:443 -s rr
ipvsadm -a -t 192.168.161.130:443 -r 192.168.161.131:443 -m
ipvsadm -a -t 192.168.161.130:443 -r 192.168.161.132:443 -m
6.调度服务器上验证。