nginx + keepalived实现高可用示例流程步骤

2023-06-01 00:00:00 示例 可用 步骤

这是一种基于nginx和keepalived实现高可用的示例,可以用于保证web服务的高可用性。

安装nginx和keepalived

在所有服务器上安装nginx和keepalived:

sudo apt-get update
sudo apt-get install nginx keepalived

配置nginx

在所有服务器上配置nginx,将其配置为反向代理服务器。编辑/etc/nginx/sites-available/default文件:

upstream backend {
    server 192.168.1.2:80;
    server 192.168.1.3:80;
}
server {
    listen 80;
    server_name example.com;
    location / {
        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;
    }
}

这里将所有请求都代理到名为"backend"的服务器组上,该服务器组包含两个服务器,分别是192.168.1.2和192.168.1.3。其他配置可以根据需要进行修改。


配置keepalived

在所有服务器上配置keepalived,将其配置为主备模式。在主服务器上编辑/etc/keepalived/keepalived.conf文件:

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.1/24 dev eth0
    }
}

在备服务器上编辑/etc/keepalived/keepalived.conf文件:

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.1/24 dev eth0
    }
}

这里将虚拟IP地址设置为192.168.1.1,所有请求都会发送到该IP地址。

主服务器的优先级设置为100,备服务器的优先级设置为50。


启动服务

在所有服务器上启动nginx和keepalived服务:

sudo systemctl start nginx
sudo systemctl start keepalived


测试

现在可以测试高可用性是否正常工作。

可以通过浏览器访问虚拟IP地址192.168.1.1来测试。

如果主服务器出现故障,备服务器将自动接管。

如果主服务器恢复正常,它将重新成为主服务器。


这是一种基于nginx和keepalived实现高可用的示例。

可以根据需要进行修改和调整。

相关文章