搭建Web项目_搭建Keepalived Nginx高可用Web集群
1、安装Nginx
更新系统软件包列表:
```
sudo aptget update
```
安装Nginx:
```
sudo aptget install nginx
```
启动Nginx服务:
```
sudo systemctl start nginx
```
设置Nginx开机自启:
```
sudo systemctl enable nginx
```
2、安装Keepalived
下载Keepalived软件包:
```
wget http://www.keepalived.org/software/keepalived2.2.30.tar.gz
```
解压软件包:
```
tar zxvf keepalived2.2.30.tar.gz
```
进入解压后的目录:
```
cd keepalived2.2.30
```
编译和安装Keepalived:
```
./configure prefix=/usr/local/keepalived sysconfdir=/etc/keepalived withkerneldir=/lib/modules/$(uname r)/build MULTI_PACKET=no withoutpam withoutvrrp withoutlua withoutcrypto withopenssl withoutbonding withoutipvsadm withoutlvsadm withoutnfs withoutvrrpv3 withoutcluster withoutlbnsd withoutlnav withsystemd withscript withpidfile withlogfile withstatedump withtrackdev withinterface witharp withroute withipvsadm withiptables withnetlink withvrrpv6 disablestatic disableshared enablereload enablemonitorsysconfdir=/etc/keepalived withkerneldir=/lib/modules/$(uname r)/build MULTI_PACKET=no withoutpam withoutvrrp withoutlua withoutcrypto withopenssl withoutbonding withoutipvsadm withoutlvsadm withoutnfs withoutvrrpv3 withoutcluster withoutlbnsd withoutlnav withsystemd withscript withpidfile withlogfile withstatedump withtrackdev withinterface witharp withroute withipvsadm withiptables withnetlink withvrrpv6
make && sudo make install
```
配置Keepalived:
```
vi /etc/keepalived/keepalived.conf
```
在配置文件中,添加以下内容:
```
global_defs {
notification_email {
user@example.com # 发送报警邮件的邮箱地址
}
router_id LVS_DEVELOP # 路由器ID,用于标识该节点的唯一性
}
vrrp_instance VI_1 { # VRRP实例名称,可以自定义,这里使用默认的VI_1
state MASTER # 节点状态,可以是MASTER或BACKUP,MASTER为主节点,BACKUP为备份节点
interface eth0 # 虚拟网卡接口,根据实际情况进行修改,一般使用eth0作为主网卡接口
virtual_router_id 51 # VRRP的虚拟路由ID,范围是1~255,可以自定义,这里使用默认的51
priority 100 # VRRP优先级,范围是1~255,数值越大表示优先级越高,主节点的优先级要高于备份节点的优先级,这里设置为100
advert_int 1 # VRRP广播间隔时间,单位是秒,默认是1秒,可以根据实际需求进行调整
authentication { # VRRP认证方式的配置,根据实际情况进行修改,这里不使用认证,所以留空即可
auth_type PASS # 认证类型,可以是PASS或AH,PASS表示不进行认证,AH表示使用AH认证协议进行认证,这里使用PASS不进行认证
auth_pass 1111 # 认证密码,如果认证类型是PASS并且留空时,表示不使用密码进行认证;如果使用AH认证协议进行认证时,需要填写对应的密钥值,这里留空表示不使用密码进行认证
}
virtual_ipaddress { # VRRP虚拟IP地址的配置,根据实际情况进行修改,这里使用虚拟IP地址为192.168.0.100的子网段中的任意一个IP地址作为虚拟IP地址
192.168.0.100/24 dev eth0 label eth0:1 # IP地址和子网掩码的组合格式,dev表示使用的网卡接口名,label表示给虚拟IP地址添加一个标签便于识别和管理,这里是将虚拟IP地址绑定到eth0网卡上并添加了一个标签为eth0:1的标识符
}
}
```
保存并退出编辑器,然后启动Keepalived服务:
```
sudo systemctl start keepalived.service # 启动Keepalived服务
sudo systemctl enable keepalived.service # 设置Keepalived服务开机自启
```
3、测试高可用性集群功能
在另一台服务器上重复上述步骤安装和配置Nginx和Keepalived,然后分别在两台服务器上访问Web应用的域名或IP地址,确认负载均衡和故障转移是否正常工作,可以使用curl命令或者浏览器访问Web应用。
```
curl http://webapp.example.com # 如果当前服务器为主节点,则应该能够正常返回Web应用的内容;如果当前服务器为备份节点,则可能会返回错误或者无法连接的提示信息,这是因为在备份节点上没有运行Web应用的服务进程,但是可以通过访问其他正常的服务器来确认负载均衡功能是否正常工作,如果能够正常返回其他服务器上的Web应用的内容,则说明负载均衡功能是正常的,同时可以尝试停止其中一台服务器上的Keepalived服务或者Nginx服务,再次访问Web应用的域名或IP地址,观察是否能够自动切换到另一台服务器上继续提供服务,如果不能自动切换并且出现错误或者无法连接的提示信息,则说明故障转移功能存在问题,需要检查相应的日志文件以确定具体原因并进行修复。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/549877.html