80
和 443
,这就导致共存部署时 雷池WAF 默认无法监听 80
和 443
端口,那怎么办呢?怎样安装宝塔我这里就不多赘述了,自行去 宝塔官网 安装,根据自己网站情况配置环境,(啰嗦一句安装好宝塔后不用着急安装Docker,后续安装雷池WAF时会帮你安装。)
{message type="info" content="先随便创建个站点,然后启用一下ssl证书,再开启个强制HTTPS(避坑,下文会用到)"/}
在宝塔面板,网站中找到对应的站点,单击右侧的设置!
切换到配置文件,修改监听端口为其他非占用端口,这里我把 80
端口改为 88
端口, 443
端口改为 444
端口(根据个人修改)单击保存即可。图中的 if
判断后面的端口是强制 HTTPS 的判断端口,(一定要改,不然反复重定向)如果你没有开启强制 HTTPS 就没有这个 if
判断代码,就不需要改。
进入 /www/server/panel/vhost/nginx/
目录,分别编辑 0.default.conf
和 phpfpm_status.conf
文件,将默认监听端口修改为其他非占用端口(和上面配置相似分别把80端口和443端口进行修改,必须把这两个文件所有上述端口进行修改),最后保存退出。
配置完成后重启 Nginx ,如果可以正常重启则说明配置正确。后期新增的网站域名一定要写 a.com:xx
, xx
写你的非标端口, HTTPS 端口也要改,否则默认使用 80
端口会出现各种意想不到的 BUG !(记住要在宝塔防火墙和服务器防火墙添加端口规则,放行其刚才修改的端口)
前往 雷池WAF官网 复制对应系统脚本在SSH终端执行安装。
在宝塔面板左侧菜单选择终端,执行已复制的命令进行安装 雷池WAF ,提示安装 Docker 时确定即可。雷池WAF安装目录选择默认的(如果自定义安装路径,更新/卸载是个大麻烦)
雷池安装成功以后,你可以打开浏览器访问 http://你的ip:9443
来使用雷池控制台。
{message type="warning" content="注意对9443的端口放行"/}
然后会提示你绑定一个TOTP验证软件,这里推荐使用腾讯身份验证器绑定(我没有提示绑定软件🤷♂️这里还是要讲述一下)
{callout color="#f0ad4e"}
请注意:这里有个坑,雷池的按钮有些在手机端单击无效,需要长按,长按即可解决,腾讯身份验证器TOTP绑定需要扫码,你可以用俩设备或者截图后用QR扫码提取一下验证代码验证,这里不再赘述。
{/callout}
雷池WAF添加站点网上有很多教程,这里我就不赘述了!这里主要说一下这个上游怎么请求,配置错误会出现502错误。
选择 雷池WAF 和 宝塔 通讯用 HTTP 协议就写 HTTP 协议你写的非标端口,我的示例是 88端口 ,一定要注意, HTTP 协议的上游写 http://127.0.0.1:88
注意协议和端口。
选择 雷池WAF 和 宝塔 通讯用 HTTPS 协议就写 HTTPS 协议你写的非标端口,我的示例是 444
端口,一定要注意, HTTPS 协议的上游写 https://127.0.0.1:444
注意协议和端口。
如果你都按照上面的教程操作,是不会出现端口被占用情况的,请自行排查问题关键。
目前发现如果已经部署了站点,雷池WAF可能会出现莫名其妙的占用现象,目前暂时没发现有解决方案,只能重装雷池WAF安装防护、升级等... 雷池WAF 官网均有教程,请自行查阅,这里不再过多赘述。
在雷池防护站点,全局配置中把 源 IP 获取方式更换为从 源 IP 获取方式从 HTTP-Header
中获取,并把 HTTP-Header
设置为 X-Forwarded-For
并开启 {x} 清空并重写 X-Forwarded-For
在 Nginx 配置中的 HTTP 代码块增加一下代码
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on; #使用CDN时考虑,不然会无法获取访客IP只能获取CDN的IP
{callout color="#f0ad4e"}
本站已接入 长亭雷池WAF 请勿恶意 DDoS 本站!
{/callout}