前言
雷池是一个简单好用的一个web应用防火墙,宝塔是一个方便且易于使用的服务器管理面板。但是宝塔安装的nginx(或者apache)会占用443端口,会与雷池产生冲突。这篇文章就是介绍一种方法,让雷池与宝塔共存在一台服务器。
简要思路
宝塔的NGINX是十分强势的,每次服务器重启都会强制占用443与80端口,所以我们使用宝塔虚拟主机功能,让宝塔的NGINX监听443与80,然后将流量反向代理到雷池,通过雷池WAF过滤后,最终又将流量发到目标站点。如果还是不太明白,就看下面的详细介绍。
详细介绍
我们假设最里头的网站是一个WORDPRESS站点,使用宝塔面板的Nginx与PHP,现在我希望又能使用宝塔面板的Nginx与PHP,也能同时使用雷池对访客流量进行过滤以及检测。(这也是这篇博文相比起其他博文不同的地方,别的博客很多都是教你关闭掉宝塔的NGINX,但是这样子会让宝塔面板的PHP无法使用)
步骤一:先创建一个站点,这个站点绑定127.0.0.1:8000端口(端口号什么的可以自己定义,但是不要跟别的重复),并且请注意,这个端口请不要让外部能访问,只能让本机能够访问(避免出现泄露的问题),此站点可以不用配置https证书
步骤二:在雷池中配置,设立应用(其实就是站点),应用上游设置为127.0.0.1:8000(就是刚刚的端口),应用绑定端口设置为127.0.0.1:8001(此端口也不要让非本机能访问)。并且雷池中不要有任何应用(站点)绑定了80或443端口!(雷池可以无需80,443端口运行)。请注意!雷池也需要在防护应用-高级配置-源IP获取方式这个地方将获取方式调整为“取X-fowrd上一级的地址”,如下图,否则雷池的防护无法正确的工作!

步骤三:在宝塔中再创建一个站点,这个站点是真正的对外访问的,并配置反向代理到127.0.0.1:80001。此站点绑定好真正对外的域名,并且配置好证书,配置好后一切大功告成。
其他需要注意的事情
可以选择只保留步骤3中主机的站点日志,避免出现日志重复的问题。
雷池会对一些请求进行缓存,可以按需求