keepalived+nginx简单配置例子

环境:

  • 双机部署keepalived,一主一备(备能够多个)。
  • 主机ip:192.168.1.101,备机ip:192.168.1.102,虚拟ip:192.168.1.120<br>
  • 后端服务:实际能够利用nginx对web服务进行反向代理,这里仅使用nginx的静态页面index.html进行测试。

keepalived安装

  1. 在线安装:
# 仓库的keepalived多是比较旧的版本,建议官网下载编译安装
sudo yum install keepalived
  1. 离线安装
  • 点击这里下载,建议使用2.0.0版本。html

  • 解压nginx

  • 进入目录web

  • 开始安装,依次执行vim

# 须要跑这个才能自动生成系统服务文件(keepalived.service)
# 2.0.0版本没有这个,直接执行下面的步骤便可,也会自动创建系统服务文件
#./build_setup
# 安装配置,默认就能够
./configure
# 编译安装
sudo make && sudo make install

可能会出现依赖缺失的问题,查看解压目录下的INSTALL文件,里面有必须依赖说明。后端

配置

  • 创建keepalived配置文件软链接到keepalived默认的配置文件目录: /etc/keepalived/keepalived.conf
sudo ln -s /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
  • 开启端口和vrrp协议支持
  1. 开启后端服务端口,这个示例只用到nginx的index.xml静态页面,端口号是:8001。

若是防火墙使用firewalld管理:浏览器

firewall-cmd --zone=public --add-port=8001/tcp --permanent

nginx.conf:服务器

server {
    listen 8001;
    server_name localhost;
    
    location / {
        root html;
        index index.html index.htm;
    }
    ...
}
  1. 开启vrrp协议支持

其中enp0s3是网卡名称,使用ifconfig命令能够查看;224.0.0.18是keepalived的默认组播地址。负载均衡

# 添加规则 
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp0s3 --destination 224.0.0.18 --protocol vrrp -j ACCEPT 
# 重启防火墙 
firewall-cmd --reload

修改keepalived配置文件keepalived.conftcp

sudo vim /etc/keepalived/keepalived.conf

修改完成的的主机配置文件内容: 测试

  1. 其中interface是网卡名称,通常服务器都有两个网卡,一个内网一个外网,keepalived是客户端访问的,因此修改成外网网卡。
  2. virtual_ipaddress就是虚拟ip了,能够配置多个,用空格或者换行隔开。
  3. 删除全部virtual_server节点,virtual_server是lvs用到的,这个例子负载均衡用了nginx,不须要配置lvs。
  4. 复制或者同步配置文件到备机,修改vrrp_instance_VI_1下的stateBACKUP以及优先级priority,优先级priority要比主机的小。

启动测试

  • 主机和备机分别启动keepalived
sudo systemctl start keepalived.service

使用命令: sudo systemctl enable keepalived.service能够设置为开机启动。 使用命令: ip addr能够查看网卡的全部ip信息: 能够发现对应网卡上已经多了一个ip,这个ip就是咱们设置的虚拟ip。 若是关闭了主机keepalived,会发现虚拟ip已经漂移到了备机上了。

  • 修改主备机的nginx首页静态页面,增长不一样的标识以区分是来自那台机的页面

编译安装版的nginx的首页路径:/usr/local/nginx/html/index.html

  • 在浏览器上测试

浏览器输入: 192.168.1.120:8001,结果以下图:

关闭主机keepalived: sudo systemctl stop keepalived.service,刷新浏览器页面,结果以下图:

测试成功!

相关文章
相关标签/搜索