在 2个 ip 分别是 192.168.247.129 和 192.168.247.131 ubuntu虚拟机上一个给一个 keeplived 配置和说明 ,虚拟ip 192.168.247.100 给出安装过程 原理 配置说明 测试方法
以下是在两台 Ubuntu 虚拟机(IP 分别为 192.168.247.129 和 192.168.247.131)上配置 Keepalived 以实现虚拟 IP 192.168.247.100 的详细步骤、原理、配置说明和测试方法:
1. 安装 Keepalived
在两台 Ubuntu 虚拟机上分别执行以下命令安装 Keepalived:
bash
sudo apt update
sudo apt install keepalived
2. Keepalived 原理
Keepalived 是基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)实现的高可用解决方案。它通过在一组路由器之间运行 VRRP 协议,将多个物理路由器虚拟成一个虚拟路由器,对外提供一个虚拟 IP 地址。当主路由器出现故障时,备份路由器会自动接管虚拟 IP,继续提供服务,从而实现服务的高可用性。
3. 配置说明
在两台虚拟机上分别编辑 Keepalived 的配置文件 /etc/keepalived/keepalived.conf
:
主节点(192.168.247.129)配置
plaintext
global_defs {
router_id LVS_DEVEL_1 # 标识本节点的名称,确保在集群中唯一
}
vrrp_instance VI_1 {
state MASTER # 主节点状态为MASTER
interface ens33 # 绑定虚拟IP的物理网卡,需根据实际情况修改
virtual_router_id 51 # 虚拟路由器ID,同一VRRP组内需相同
priority 100 # 主节点优先级,数值越大优先级越高
advert_int 1 # 发送VRRP通告的时间间隔(秒)
authentication {
auth_type PASS
auth_pass 1111 # 认证密码,同一VRRP组内需相同
}
virtual_ipaddress {
192.168.247.100 # 虚拟IP地址
}
}
备份节点(192.168.247.131)配置
plaintext
global_defs {
router_id LVS_DEVEL_2 # 标识本节点的名称,确保在集群中唯一
}
vrrp_instance VI_1 {
state BACKUP # 备份节点状态为BACKUP
interface ens33 # 绑定虚拟IP的物理网卡,需根据实际情况修改
virtual_router_id 51 # 虚拟路由器ID,同一VRRP组内需相同
priority 90 # 备份节点优先级,低于主节点
advert_int 1 # 发送VRRP通告的时间间隔(秒)
authentication {
auth_type PASS
auth_pass 1111 # 认证密码,同一VRRP组内需相同
}
virtual_ipaddress {
192.168.247.100 # 虚拟IP地址
}
}
配置完成后,保存文件并重启 Keepalived 服务:
bash
sudo systemctl restart keepalived
sudo systemctl enable keepalived # 设置开机自启
4. 测试方法
- 检查虚拟 IP 是否绑定:在主节点上执行
ip addr show
,可以看到虚拟 IP 192.168.247.100 已经绑定到指定网卡上。在备份节点上执行同样命令,虚拟 IP 不应出现。 - 模拟主节点故障:在主节点上停止 Keepalived 服务
sudo systemctl stop keepalived
,然后在备份节点上执行ip addr show
,此时虚拟 IP 应该已经绑定到备份节点的网卡上。 - 恢复主节点:在主节点上重新启动 Keepalived 服务
sudo systemctl start keepalived
,虚拟 IP 应该会重新绑定回主节点。
通过以上步骤和测试方法,你可以在两台 Ubuntu 虚拟机上成功配置 Keepalived 并实现虚拟 IP 的高可用切换。
在 2个 ip 分别是 192.168.247.129 和 192.168.247.131 ubuntu虚拟机上一个给一个 rsycn配置和说明 ,虚拟ip 192.168.247.100 定时器脚本每5秒同步一次 把 192.168.247.131 /www/html 目录下的文件同步到 192.168.247.129相同目录 给出安装过程 原理 配置说明 测试方法
1. 安装过程
在两台 Ubuntu 虚拟机(192.168.247.129 和 192.168.247.131)上都需要安装 rsync
,执行以下命令:
bash
sudo apt update
sudo apt install rsync
2. 原理
rsync
是一个快速、多功能的文件复制工具,它可以在本地系统和远程系统之间同步文件和目录。rsync
利用增量传输算法,只传输源文件和目标文件之间的差异部分,从而减少了数据传输量,提高了同步效率。
定时器脚本使用 cron
或者 systemd
的 timer
来实现定时任务。不过,cron
的最小时间间隔是 1 分钟,为了实现每 5 秒同步一次,我们使用 while
循环结合 sleep
命令来实现。
3. 配置说明
3.1 配置 SSH 免密登录
为了让 192.168.247.131 能够无密码地连接到 192.168.247.129 进行文件同步,需要在 192.168.247.131 上生成 SSH 密钥并将公钥复制到 192.168.247.129。
在 192.168.247.131 上执行以下命令:
bash
ssh-keygen -t rsa
ssh-copy-id 192.168.247.129
在执行 ssh-copy-id
命令时,需要输入 192.168.247.129 的密码。
3.2 创建同步脚本
在 192.168.247.131 上创建一个同步脚本,例如 /root/sync_script.sh
,内容如下:
bash
#!/bin/bash
while true; do
rsync -avz /www/html/ 192.168.247.129:/www/html/
sleep 5
done
给脚本添加执行权限:
bash
chmod +x /root/sync_script.sh
上述脚本中,-a
选项表示以归档模式同步,保留文件的权限、时间戳等属性;-v
选项表示显示详细的同步信息;-z
选项表示在传输过程中进行压缩。
3.3 启动同步脚本
在 192.168.247.131 上启动同步脚本:
bash
nohup /root/sync_script.sh > /var/log/sync.log 2>&1 &
nohup
命令用于让脚本在后台运行,即使终端关闭也不会停止;> /var/log/sync.log 2>&1
表示将脚本的标准输出和错误输出都重定向到 /var/log/sync.log
文件中;&
表示将脚本放到后台执行。
4. 测试方法
4.1 验证 SSH 免密登录
在 192.168.247.131 上执行 ssh 192.168.247.129
,如果不需要输入密码就能登录到 192.168.247.129,说明 SSH 免密登录配置成功。
4.2 验证文件同步
在 192.168.247.131 的 /www/html
目录下创建一个测试文件,例如:
bash
touch /www/html/test_file.txt
等待几秒钟后,在 192.168.247.129 的 /www/html
目录下查看是否存在 test_file.txt
文件。如果存在,说明文件同步成功。
4.3 查看同步日志
可以查看 /var/log/sync.log
文件,了解同步过程中的详细信息:
bash
tail -f /var/log/sync.log
注意事项
- 确保两台虚拟机之间的网络连接正常,并且防火墙允许 SSH 和
rsync
所需的端口(默认 SSH 端口为 22)。 - 确保
/www/html
目录在两台虚拟机上都存在,并且有相应的读写权限。
在 2个 ip 分别是 192.168.247.129 和 192.168.247.131 ubuntu虚拟机上一个给一个nginx 负载均衡 配置和说明 , 192.168.247.129 配置upstream 轮询方式 给出安装过程 原理 配置说明 测试方法
1. 安装过程
192.168.247.129 和 192.168.247.131 都需要安装 Nginx
在两台 Ubuntu 虚拟机上分别执行以下命令:
bash
sudo apt update
sudo apt install nginx
安装完成后,启动 Nginx 服务并设置开机自启:
bash
sudo systemctl start nginx
sudo systemctl enable nginx
2. 原理
Nginx 的负载均衡是通过 upstream
模块实现的。upstream
模块允许定义一组后端服务器,Nginx 可以将客户端的请求分发给这些后端服务器。轮询方式是最简单的负载均衡算法,它会依次将请求分发给后端服务器列表中的每一台服务器,当分发到最后一台服务器后,又会重新从第一台服务器开始分发,如此循环。
3. 配置说明
192.168.247.129(负载均衡器)配置
编辑 Nginx 配置文件 /etc/nginx/sites-available/default
:
nginx
# 定义 upstream 块,名为 backend,包含两个后端服务器
upstream backend {
# 轮询方式默认不需要额外配置,会依次将请求分发给后端服务器
server 192.168.247.131;
# 可以添加更多后端服务器,例如:server 192.168.247.xxx;
}
server {
listen 80;
server_name _;
location / {
# 将请求代理到 upstream 定义的后端服务器组
proxy_pass http://backend;
# 以下是一些常用的代理配置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置解释:
upstream backend
:定义了一个名为backend
的后端服务器组。server 192.168.247.131
:指定了后端服务器的 IP 地址。proxy_pass http://backend
:将客户端的请求代理到backend
这个后端服务器组。proxy_set_header
:设置代理请求的头信息,将客户端的真实 IP 等信息传递给后端服务器。
配置完成后,检查配置文件语法是否正确:
bash
sudo nginx -t
如果语法正确,重新加载 Nginx 配置:
bash
sudo systemctl reload nginx
192.168.247.131(后端服务器)配置
可以简单地在 /var/www/html
目录下创建一个测试页面,例如:
bash
echo "This is server 192.168.247.131" | sudo tee /var/www/html/index.html
4. 测试方法
4.1 验证 Nginx 服务是否正常运行
在两台虚拟机上分别访问 http://localhost
,如果能看到 Nginx 的默认页面或者自定义的测试页面,说明 Nginx 服务正常运行。
4.2 测试负载均衡
在外部网络(可以是同一局域网内的其他设备)上访问 http://192.168.247.129
,多次刷新页面,观察页面内容是否一致。由于目前只有一台后端服务器 192.168.247.131
,每次访问应该都能看到 This is server 192.168.247.131
。如果添加了更多后端服务器,多次刷新页面可能会看到不同的页面内容,说明负载均衡配置生效。
4.3 查看 Nginx 日志
可以查看 Nginx 的访问日志 /var/log/nginx/access.log
,了解请求的分发情况:
bash
sudo tail -f /var/log/nginx/access.log
注意事项
- 确保两台虚拟机之间的网络连接正常,并且防火墙允许 Nginx 所需的端口(默认 HTTP 端口为 80)。
- 如果需要添加更多后端服务器,只需在
upstream
块中添加相应的server
指令即可。
编辑
分享
192.168.247.131(后端服务器)配置
如何测试Nginx负载均衡配置是否生效?
如何监控Nginx负载均衡的状态?