简单介绍一下宝塔面板,安全高效的服务器运维面板,使用宝塔面板的人非常多
在网站管理上,许多用户都是通过宝塔面板进行管理,宝塔面板的Nginx默认监听端口为80和443,这就导致共存部署时雷池WAF默认无法监听80和443端口,那怎么办呢?
调整宝塔网站原来的监听80和443,改成任意其他端口(自定义的)
在雷池配置站点的时候使用80和443,配置完成后,测试访问的站点,确认是否配置生效(注意CDN缓存刷新)
本文将一一给出参考方案
宝塔调端口时需要修改地方较多,参考看文档上下文进行排查,且作者并不推荐宝塔和雷池共用服务器
默认宝塔的面板机器自带了LNMP的架构
创建一个站点用于测试
测试网站已有宝塔面板搭建完成
面板搭建的网站已经占用了机器的80端口,并且开启了80的监听
可以使用 ss -antp|grep LISTEN|grep 80 确认宝塔是否有对80监听
看到有一个监听的
如果宝塔的站点开启了强制https
面板这时会监听80和443,但是会把80端口的访问重定向为443端口走https的协议
直接使用雷池的安装命令
宝塔面板安装出现报错处理
看报错内容是启动容器失败了
猜测可能是安装脚本不兼容,宝塔默认安装的是docker-compose ,脚本执行出错
手动启动雷池
在雷池的安装目录下(/date/safeline)使用docker-compose up -d启动一下
如果安装的是docker compose 使用docker compose up -d
启动雷池成功了,因为之前安装脚本执行报错了,没有初始化账户密码,需要手动执行重置一下命令
把雷池的重置密码命令输入,可以看到新的账号密码
使用账号密码登录雷池
已面板搭建源站监听的是80和443,其他都是默认配置
如果需要在用户无感知的情况下套上雷池,需要修改源站点端口,再配置雷池的站点监听80、443
查看当前端口占用情况, 可以看到宝塔面板还是默认占用80端口
修改 Nginx配置
在“网站”中单击“Nginx1.X.X”打开Nginx管理窗口
切换到“配置修改”,下滑配置文件内容到底部,找到include指令,找到Nginx引入的配置文件路径,例 如/www/server/panel/vhost/nginx/
在文件进入/www/server/panel/vhost/nginx/,分别编辑0.default.conf和phpfpm_status.conf文件,将默认监听端口修改为其他非占用端口,比如10080,最后保存退出
修改完成后重载一下
再次使用命令查看80端口的监听情况
发现宝塔的nginx就没有再占用80端口了
配置站点
把80端口腾出来以后就可以给雷池设置站点了
配置成上面修改的10443作为上游服务器(10443也是需要改配置文件的,一般默认都是443,和改80的文件在一个地方,可以自己查找修改)
配置完成后测试一下使用https访问,浏览器会默认走443端口
配置完成,使用一个攻击的请求测试一下
出现如下图,雷池的站点就配置完成了
检查失败报错原因
报错信息类似于下图
事实上是配置错误导致tengine挂了,一直重启
触发的原因是宝塔会监听某一个端口,比如443 ,但是雷池也配置了监听443的站点,这时候雷池重启,导致端口被宝塔抢占,雷池无法正常监听,这时候tengine会一直挂,无法编辑和删除站点
解决方案1:
查看tengine的日志,找到与tengine冲突的站点端口,把外部的占用处理,这个时候,外部没有占用雷池站点的端口,雷池的tengine会自动恢复正常,可以编辑和删除
解决方案2 :
使用雷池帮助文档的紧急恢复 tengine命令
执行时间根据网站数量和配置情况而定, 请耐心等待
cd /data/safeline && bash reset_tengine.sh
执行后tengine会先恢复,可以直接删除站点,删除后重新配置站点
浏览器报错信息:ERR_UNSAFE_PORT
是因为这个端口是高危端口,这里手动修改站点配置换一个端口。比如20080即可
修改后访问20080就正常了
这时候 需要配置雷池站点的时候上游服务器就是
可以这样配置