在VirtualBox中运行的Ubuntu虚拟机需满足以下条件:
ping命令验证)。192.168.1.101,端口8080;后端服务器2的IP为192.168.1.102,端口8080)。以下是VirtualBox中Ubuntu虚拟机常用的负载均衡方案,均基于软件实现:
Nginx通过反向代理将客户端请求分发到多个后端服务器,支持轮询、权重、IP哈希等算法。
sudo apt update
sudo apt install nginx -y
/etc/nginx/nginx.conf),在http块中添加upstream模块定义后端服务器组,并修改server块将请求转发到该组:http {
# 定义后端服务器组(负载均衡池)
upstream backend_servers {
# 轮询算法(默认):依次将请求分发到各服务器
server 192.168.1.101:8080;
server 192.168.1.102:8080;
# 可选:设置权重(weight=2表示该服务器处理2倍请求)
# server 192.168.1.103:8080 weight=2;
}
# 虚拟服务器配置(监听80端口)
server {
listen 80;
server_name your-domain.com; # 替换为域名或IP
location / {
# 将请求转发到后端服务器组
proxy_pass http://backend_servers;
# 可选:转发客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
sudo systemctl restart nginx
sudo systemctl enable nginx # 设置开机自启
192.168.1.100)访问服务,多次刷新页面可看到请求交替分发到后端服务器。HAProxy是高性能的TCP/HTTP负载均衡器,支持健康检查、会话保持等功能。
sudo apt update
sudo apt install haproxy -y
/etc/haproxy/haproxy.cfg),在frontend中定义监听端口,在backend中配置后端服务器组:global
log /dev/log local0
log /dev/log local1 notice
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
# 前端监听(接收客户端请求)
frontend http_front
bind *:80
# 可选:开启统计页面(访问http://负载均衡器IP/haproxy?stats)
stats uri /haproxy?stats
default_backend http_back
# 后端服务器组
backend http_back
# 轮询算法
balance roundrobin
# 定义后端服务器(check表示开启健康检查)
server server1 192.168.1.101:80 check
server server2 192.168.1.102:80 check
sudo systemctl restart haproxy
sudo systemctl enable haproxy
http://负载均衡器IP/haproxy?stats查看后端服务器状态。若后端服务为容器化应用(如Nginx、Tomcat),可通过Docker Compose快速部署多个容器实例,并利用Docker内置的负载均衡功能。
sudo apt update
sudo apt install docker.io docker-compose -y
docker-compose.yml文件,定义服务及副本数(如3个Nginx容器):version: '3'
services:
web:
image: nginx # 使用Nginx镜像
ports:
- "80:80" # 将宿主机80端口映射到容器80端口
deploy:
replicas: 3 # 创建3个容器实例
resources:
limits:
cpus: '0.5'
memory: 512M
docker-compose up -d
192.168.1.100),Docker会自动将请求分发到3个Nginx容器。sudo ufw allow 80/tcp)。proxy_next_upstream指令),避免将请求发送到故障服务器。通过以上方法,即可在VirtualBox虚拟机中的Ubuntu系统上实现负载均衡,提升服务的并发处理能力和可靠性。