[雷池WAF]长亭雷池WAF配置基于健康监测的负载均衡,实现故障自动切换上游服务器

为了进一步加强内网安全,在原有硬WAF的基础上,又在内网使用的社区版的雷池WAF,作为应用上层的软WAF。从而实现多WAF防护的架构。

经过进一步了解,发现雷池WAF的上游转发代理是基于Tengine的,所以萌生出了一个想法,就是让雷池既可以具备WAF的功能,又具备负载均衡和故障切换的能力。

接下来,开始正题

1、首先准备一个用于测试的HTTP Server,注意:这里需要实现一下 /status 这个路由,随便返回啥,只要是 200 的状态码就行。

复制代码
package main

import (
    "os"
    "fmt"
    "net/http"
)

func Hello1Handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "I am 11111")
}

func Hello2Handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "I am 22222")
}

func check(w http.ResponseWriter, r *http.Request){
    fmt.Fprintf(w, "check")
}

func main () {
    if len(os.Args) > 1 {
        http.HandleFunc("/hello", Hello1Handler)
        http.HandleFunc("/status", check)
        http.ListenAndServe(":8001", nil)
    } else {
        http.HandleFunc("/hello", Hello2Handler)
        http.HandleFunc("/status", check)
        http.ListenAndServe(":8002", nil)
    }
}

然后分别启动两个服务,分别在8001和8002端口。

2、在雷池里创建一个新的站点,并把上游服务器指向第一个节点。

测试访问正常,请求被代理到了8001的HTTP Server上

3、修改雷池Nginx的conf文件

文件路径:/data/safeline/resources/nginx/sites-enabled

下面会有好几个配置文件,命名格式为:IF_backend_* ,每新建一个网站,这里就会新增一个类似命名的文件。

这里找到刚新建的网站的conf文件(cat一下,看看监听端口什么的就能分辨出来)

我这里是IF_backend_2,这个文件。然后开始修改文件内的配置。

  • 添加一个上游server:

  • 配置基于健康检测的的负载均衡。这里仅是一些最基础的配置,你也可以根据自己的需求来修改和添加配置。

  • 校验conf文件,并重启雷池的Nginx。

    复制代码
    docker exec safeline-tengine nginx -t
  • 下面的输出,表示校验通过

    然后重启Nginx

    复制代码
    docker exec safeline-tengine nginx -s reload
  • 5、开始测试结果

  • 负载均衡的测试

因为设置的weight是1,两个节点相等,所以请求在平均分配到两个节点上。

  • 单节点掉线的测试

  • 关闭8002上的HTTP Server

    刷新页面,发现此时请求都集中到了8001的HTTP Server上

    至此打完收工,雷池内置的Tengine(Nginx)本身自带了很多模块,常见的负载均衡应该都是可以配置的。再就自行探索吧!

    PS:这里需要注意的是,当你自己修改完配置文件,又在系统内修改的话,自定义的一些配置会被覆盖了。所以提前自己做好备份。

相关推荐
正在学习前端的---小方同学10 小时前
Harbor部署教程
linux·运维
牛奔11 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
翼龙云_cloud11 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
墨风如雪12 小时前
拒绝被找回!MJJ必修课:Outlook邮箱交易后的“防回手”安全设置全攻略
服务器
DX_水位流量监测13 小时前
大坝安全监测之渗流渗压位移监测设备技术解析
大数据·运维·服务器·网络·人工智能·安全
电商API&Tina13 小时前
京东 API 数据采集接口接入与行业分析
运维·服务器·网络·数据库·django·php
Mr_Xuhhh13 小时前
博客标题:深入理解Shell:从进程控制到自主实现一个微型Shell
linux·运维·服务器
f***241116 小时前
高效自动化管理临时文件的技术方案
运维·自动化
m0_7381207216 小时前
应急响应——知攻善防靶场Linux-1详细应急过程
linux·运维·服务器·网络·web安全·ssh
obboda17 小时前
磁盘管理(MBR、LVM)
运维·5g