要实现负载均衡,首先需要确保CentOS虚拟机之间、虚拟机与主机之间能互相通信,且具备固定IP。推荐采用NAT+Host-Only双网卡模式(兼顾外网访问与局域网通信):
/etc/sysconfig/network-scripts/ifcfg-enp0s8,网卡名以ip addr命令为准):TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.56.101 # 虚拟机静态IP(需在192.168.56.x段,避免冲突)
NETMASK=255.255.255.0
ONBOOT=yes
systemctl restart network。完成上述配置后,虚拟机可通过NAT访问外网,通过Host-Only与其他虚拟机/主机通信。
负载均衡可通过软件层(如Nginx、HAProxy、LVS+Keepalived)实现,以下是具体步骤:
Nginx是一款轻量级反向代理服务器,支持HTTP/HTTPS负载均衡,配置简单:
sudo yum install epel-release -y
sudo yum install nginx -y
/etc/nginx/nginx.conf,在http块中添加:upstream backend {
server 192.168.56.102:80; # 后端Web服务器1(CentOS虚拟机)
server 192.168.56.103:80; # 后端Web服务器2(CentOS虚拟机)
# 可添加更多服务器,权重可通过weight参数调整(如server 192.168.56.104:80 weight=2)
}
server块中添加:server {
listen 80;
server_name your-domain.com; # 替换为域名或IP
location / {
proxy_pass http://backend; # 转发到后端服务器组
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
sudo systemctl start nginx
sudo systemctl enable nginx
验证:访问http://your-domain.com,Nginx会自动将请求轮询分发到后端服务器。
HAProxy专注于高性能负载均衡,支持TCP(如数据库)和HTTP协议:
sudo yum install haproxy -y
/etc/haproxy/haproxy.cfg,添加:global
daemon
maxconn 256
defaults
mode http
option httplog
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin # 轮询算法(可选leastconn、source等)
server server1 192.168.56.102:80 check # 检查后端服务器可用性
server server2 192.168.56.103:80 check
sudo systemctl start haproxy
sudo systemctl enable haproxy
验证:访问http://<HAProxy-IP>,请求会被分发到后端服务器。
LVS(Linux Virtual Server)是内核级负载均衡,性能极高;Keepalived提供VIP(虚拟IP)和故障转移:
192.168.56.x)。192.168.56.200):sudo echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
sudo echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sudo echo "192.168.56.200" > /etc/sysconfig/network-scripts/ifcfg-lo:0
sudo ifup lo:0
sudo yum install keepalived -y。/etc/keepalived/keepalived.conf:vrrp_instance VI_1 {
state MASTER
interface enp0s3 # 绑定网卡(需与Host-Only网卡一致)
virtual_router_id 51 # 同一网络唯一ID
priority 100 # 主服务器优先级(高于备服务器)
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.56.200 # VIP(对外提供服务)
}
}
virtual_server 192.168.56.200 80 {
delay_loop 6
lb_algo rr # 轮询算法
lb_kind DR # 直接路由模式(性能最优)
protocol TCP
real_server 192.168.56.102 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.56.103 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
sudo systemctl start keepalived
sudo systemctl enable keepalived
验证:访问http://192.168.56.200,请求会被分发到Real Server;若主Director故障,备Director会自动接管VIP。
sudo systemctl stop firewalld
sudo setenforce 0
TCP_CHECK或HTTP_CHECK,确保故障服务器被自动剔除。advert_int(心跳间隔)、LVS的lb_algo(算法)等参数。通过上述步骤,即可在VirtualBox中为CentOS虚拟机搭建负载均衡环境,提升系统性能与可靠性。