雷池社区版配置遇到问题不要慌,查看本文解决

news2024/11/29 10:39:07

很多新人不太熟悉反向代理,所以导致配置站点出现问题

配置问题

记录常见的配置问题

配置后攻击测试没有拦截记录

检查访问请求有没有真实经过雷池

有很多新人配置站点后,真实的网站流量还是走的源站,导致雷池这边什么数据都没有

配置后网站无法访问,排查思路

如果按照指引配置了站点,但配置的网站无法访问

优先搜索访问网站时请求对应的错误码,根据错误码提示进行排查

梳理问题可能存在的几个原因:

  1. 配置站点错误,ip 错误、端口冲突等

  2. 雷池端与配置的站点网络不通

  3. 访问雷池配置的站点端口网络不通,对于雷池端已配置的端口没有被开放访问(防火墙、安全组等)

  4. 同时存在其他错误的配置可能会导致新的配置一直不生效,检查有没有存在其他错误的配置

  5. 雷池本身的状态不正常,使用 docker ps 检查容器状态

  6. 雷池本身默认的反向代理配置与源站需求的配置不匹配,需要手动调整雷池的反响代理配置

注:还可以结合safeline-mgt和safeline-tengine两个容器的日志帮助排查

网站无法访问排查步骤

  1. 明确 “网站无法访问” 的具体表现:

    • 如果 502 Bad Gateway tengine

    大概率是是雷池的上游服务器配置不正确,或者雷池无法访问到上游服务器,请继续按下面步骤排查。

    image.png

    • 如果请求能够返回但是十分缓慢

      • 确认服务器负载是否正常,检查服务器的 CPU、内存、带宽使用情况

      • 在客户端执行命令,检查雷池服务器与上游服务器的网络:curl -H "Host: <雷池 IP>" -vv -o /dev/null -s -w 'time_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n' http://<上游服务器地址>

      • 如果 time_namelookup 时间过大,请检查 dns server 配置

      • 如果 time_connect 时间过大,请检查雷池与上游服务器之间的网络状态

      • 如果 time_starttransfer 时间过大,请检查上游服务器状态,是否出现资源过载情况

    • 如果不是以上情况,继续下一步

  2. 在客户端执行 curl -v -H "Host: <域名或者IP>" http://<雷池 IP>:<雷池监听端口> 。如能获取到业务网站的响应,如图,并且站点的 “今日访问量” +1,说明雷池配置正确,网络正常

    image.png 如果浏览器无法访问,但这一步正常获取到响应,大概率是因为:

    • 网站域名还没有切到雷池,浏览器测试时访问的是 http(s)://<雷池 IP>,恰好业务服务上有 Host 验证,所以拒绝了该请求。这种情况需要修改本机 host,把域名解析到雷池 IP,再访问 http(s)://<域名>,才能准确测试
    • 网站业务做了其他一些特殊处理。例如访问后 301 跳转到了其他地址,需要具体排查网站业务的响应内容
    • 如果不能获取到响应,继续下一步
  3. 在雷池设备上执行 curl -v -H "Host: <域名或者IP>" http://<雷池 IP>:<雷池监听端口>。如能获取到业务网站的响应,并且站点上 “今日访问量” +1,说明雷池配置正确

    • 如果步骤 2 失败而这里成功,说明客户端到雷池之间的网络存在问题。请排查网络,保证客户端可访问到雷池,检测防火墙、端口开放等
    • 如果不能获取到响应,继续下一步
  4. 在雷池设备上执行 curl -H "Host: <域名或者IP>" http://127.0.0.1:<雷池监听端口>。如能获取到业务网站的响应,并且站点的 “今日访问量” +1,说明雷池配置正确

    • 如果步骤 3 失败而这里成功,且 telnet <雷池 IP> <雷池监听端口> 返回 Unable to connect to remote host: Connection refused,可能是被雷池设备上的防火墙拦截了。
    • 排查操作系统本身的防火墙,还有可能是云服务商的防火墙。请根据实际情况逐项排查,开放雷池监听端口的访问
    • 如果不能获取到响应,继续下一步
  5. 在雷池设备上执行 netstat -anp | grep <雷池监听端口> 确认端口监听情况。正常情况下,应该有一个 nginx 进程监听在 0.0.0.0:<雷池监听端口>

    • 没有的话请通过社群或者 Github issue 提交反馈,附上排查过程。有的话继续下一步

    image.png

  6. 在雷池设备上 curl -H "Host: <域名或者IP>" <上游服务器地址>。如能获取到业务网站的响应,说明雷池设备和站点网络没有问题

    image.png

    • 如果步骤 4 失败而这里成功,可能是配置错误,查看配置站点教程确认配置是否正确,如无法解决,请通过社群或者 Github issue 提交反馈,附上排查过程

    • 如果这步失败,说明雷池和上游服务器之间的网络存在问题。请排查网络,确保雷池可以访问到上游服务器

配置完成后,测试时返回 400 Request Header Or Cookie Too Large

检查是否形成了环路,即:雷池将请求转发给上游服务器后,上游服务器又将请求转发回雷池。

重新修改配置后再次测试

配置完成后,过waf返回404

抓包对比过waf和不过waf的请求区别,是否雷池的反代转发内容出现变化

如果服务器有请求严格校验,可以手动修改雷池的nginx,参考下文的自定义修改nginx、

注意:雷池界面操作可能导致某些自定义被覆盖重置

配置站点报错

  1. 报错信息“nginx: [emerg] duplicate listen options for 0.0.0.0:80 in /etc/nginx/sites-enabled/IF_backend_4:10\nnginx: configuration file /etc/nginx/nginx.conf test failed\n: exit status 1” 主要是说明当前的配置与原有的配置冲突了,比如原有的站点使用80端口监听所有的域名 再次配置一个使用80监听所有域名就会报错,这里第二个80监听配置指定域名即可

  2. 报错信息 “listen tcp :80: bind: address already in use” 主要是说明配置的端口已经被其他非雷池的程序占用,比如例子中的被其他占用了80端口 找到占用80端口的程序,切换成其他端口,重新配置站点即可

自定义nginx配置

雷池每次修改站点或者重启服务时,都会在waf的安装目录下的 resources/nginx/sites-enabled/ 重新生成 nginx conf 文件。因为没法“智能”合并用户自定义的配置和自动生成的配置。但是也还是有方式能持久化地添加一些 nginx conf,不会被覆盖。

每个 IF_backend_XXX 的 location 中都有 include proxy_params; 这一行配置,且 resources/nginx/proxy_params 这个文件不会被修改站点、重启服务等动作覆盖。2.1.0 版本之后支持 /etc/nginx/custom_params/backend_XXX; 可以自定义站点级的 nginx location 配置。

server {
    location ^~ / {
        proxy_pass http://backend_1;
        include proxy_params;
        include /etc/nginx/custom_params/backend_1;
        # ...
    }
}

所以只需要根据需求修改对应的文件就可以了。比如在 resources/nginx/proxy_params 里面增加如下配置,即可支持 X-Forwarded-Proto

proxy_set_header X-Forwarded-Proto $scheme;

修改完成后运行命令检查配置文件

docker exec safeline-tengine nginx -t

检查应显示

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后应用配置文件

docker exec safeline-tengine nginx -s reload

不同版本关闭防火墙的命令

默认使用雷池不需要关闭防火墙,配置对应的开放规则即可

配置比较麻烦,也可以直接关闭防火墙

Ubuntu 18.04 LTS 、 Ubuntu 20.04 LTS 、 Ubuntu 22.04 LTS

Debian 9 (Stretch)、Debian 10 (Buster)、Debian 11 (Bullseye)

关闭防火墙命令(UFW):sudo ufw disable
注:Debian 默认可能不安装 UFW,依赖于 iptables。

CentOS 7、CentOS 8、RHEL 7、 RHEL 8、Fedora 32、 Fedora 33、Fedora 34

关闭防火墙命令(Firewalld):sudo systemctl stop firewalld && sudo systemctl disable firewalld

openSUSE Leap 15.2、openSUSE Leap 15.3

关闭防火墙命令(通常是 SuSEfirewall2 或 firewalld):
1.SuSEfirewall2, 使用 sudo SuSEfirewall2 stop
2.firewalld, 使用 sudo systemctl stop firewalld && sudo systemctl disable firewalld

如果问题不能解决,可加入 雷池微信群与社区用户共同讨论,或在 百川论坛 发帖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【工程测试技术】第4章 常用传感器分类,机械式,电阻式,电容式,电感式,光电式传感器

上理考研周导师的哔哩哔哩频道 我在频道里讲课哦 目录 4.1 常用传感器分类 4.2 机械式传感器及仪器 4.3 电阻式、电容式与电感式传感器 1.变阻器式传感器 2.电阻应变式传感器 3.固态压阻式传感器 4.典型动态电阻应变仪 4.3.2 电容式传感器 1.变换原理 2.测量电路 …

如何下载3GPP协议?

一、进入3GPP网页 https://www.3gpp.org/ 二、点击“Specifications &Technologies” 三、点击“FTP Server” 网址&#xff1a; https://www.3gpp.org/specifications-technologies 四、找到“latest”&#xff0c;查看最新版 网址&#xff1a; https://www.3gpp.org/ftp…

Android Framework AMS(05)startActivity分析-2(ActivityThread启动到Activity拉起)

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读AMS通过startActivity启动Activity的整个流程的整个流程的第二阶段&#xff1a;从ActivityThread启动到Activity拉起。 第一阶段文…

【超详细】UDP协议

UDP传输层协议的一种&#xff0c;UDP(User Datagram Protocol 用户数据报协议)&#xff1a; 传输层协议无连接不可靠传输面向数据报 UDP协议端格式 定长报头&#xff0c;8字节源端口号和目的端口号来定位16位UDP长度, 表示整个数据报(UDP首部UDP数据)的最大长度如果校验和出错…

Java重修笔记 第六十七天 坦克大战(完结)

奋斗一个多月终于把坦克大战写出来了&#xff0c;看了韩老师的思路然后自己手打&#xff0c;自己做不出来就看视频然后再写&#xff0c;总结收获和难点突破点如下&#xff1a; 1. 抽象类意识 刚开始没有将 Hero 和 Enemy 抽象出顶级父类 Tank&#xff0c;看了韩老师的视频&…

存储器学习记录(资源整合)

&#xff08;一&#xff09;整合资料&#xff1a; openedv.com/thread-300792-1-1.html 需搭配的底板&#xff1a; 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 openedv.com/thread-272902-1-1.html 、、、、、、、、、、、、、、、、、、、、…

如何给4G模块(ESP32设备),ESP8266进行联网?

具体步骤&#xff1a; 1.打开uPyLoader&#xff0c;选择端口号&#xff0c;连接 连接成功后&#xff0c;点击工具栏的file-navigate&#xff0c;找到联网代码所在目录 联网代码&#xff1a; import network import timedef wifi_connect(ssid, password):wlan network.WLA…

实战篇:(三)项目实战Vue 3 + WebGL 创建一个简单的 3D 渲染应用

Vue 3 WebGL 创建一个简单的 3D 渲染应用 我们将使用 Vue 3 和 WebGL 创建一个简单的 3D 渲染应用。项目将展示如何在 Vue 组件中集成 WebGL&#xff0c;并渲染一个旋转的立方体。 1. 项目准备 首先&#xff0c;确保你已经安装了 Node.js 和 Vue CLI。如果还没有安装&#x…

一键docker脚本

#!/bin/bash ## Author: SuperManito ## Modified: 2024-10-07 ## License: MIT ## GitHub: https://github.com/SuperManito/LinuxMirrors ## Website: https://linuxmirrors.cn## Docker CE 软件源列表 # 格式&#xff1a;"软件源名称软件源地址" mirror_list_dock…

WebGl 如何给页面绑定点击事件

在WebGL中给页面绑定点击事件&#xff0c;可以通过为WebGL的绘图上下文所在的<canvas>元素添加事件监听器来实现点击事件的处理。 1. 画布添加点击事件 const ctx document.getElementById(canvas) const gl ctx.getContext(webgl)ctx.onclick function (e) {// 给ca…

深入理解WPF中的命令机制

Windows Presentation Foundation&#xff08;WPF&#xff09;是微软推出的一种用于构建桌面客户端应用程序的技术。它被认为是现代Windows应用程序的基础&#xff0c;具有强大的图形和媒体处理能力。在WPF中&#xff0c;“命令”是一个重要的概念&#xff0c;它为应用程序开发…

Ubuntu下编译opencv4.5遇到的问题及解决方法

一、编译opencv4.5的步骤 1、安装依赖项 sudo apt update sudo apt install build-essential cmake git pkg-config \ libjpeg-dev libtiff-dev libpng-dev \ libavcodec-dev libavformat-dev libswscale-dev \ libv4l-dev libxvidcore-dev libx264-dev \ libgtk-3-dev libat…

使用Arcgis批量自动出图

操作方法如下&#xff1a; 1 2 3 4 5 6 7 设置好选项&#xff0c;开始打印。 8 生成pdf。 第一步&#xff1a;shp放到数据库中&#xff0c;标注转注记&#xff0c;然后编辑注记&#xff0c;符号样式设置好。准备出图&#xff1a;&#xff08;转注记时候尽量压盖监测等选最…

使用Windows创建一个MFC应用【带界面】

MFC使用教程【对初学者保姆型友好&#xff01;】 目录 前提条件 1&#xff1a;创建MFC应用程序 2. 项目结构解读 引用 外部依赖项 头文件 源文件 资源文件 文件功能详解 项目的主要流程 步骤2&#xff1a;配置OpenCV 安装OpenCV 包含目录与库文件 步骤3&#xff1…

啤酒酿造中的温度与时间魔法:精酿啤酒的匠心之旅

在精酿啤酒的世界里&#xff0c;温度与时间仿佛两位默契的舞者&#xff0c;在酿造过程中演绎着一段段美妙的舞蹈。而Fendi Club精酿啤酒&#xff0c;正是这段舞蹈的品牌&#xff0c;将温度与时间的魔法发挥到了致点。 一、温度的魔法&#xff1a;酿造中的温暖与冷静 在啤酒酿…

【原创教程】电气电工25:如何选择接近传感器

我们今天来看看经常遇到的接近传感器,在电气电工工作中,这种传感器随处可见,所以我们要对它有一个深度的认知。 一、接近传感器的工作原理 1、通过高频发震器Coil而发出高频磁场 2、被测对象(金属)接近时表面会产生涡电流(Eddy Current),涡电流又会引发磁场 3、…

OceanBase中扩容OCP节点step by step

许多用户在开始使用OceanBase时部署OCP&#xff0c;通常选择单节点部署。但随着后续业务规模的不断扩大&#xff0c;会开始担忧单节点OCP在面对故障时可能丧失对集群运维管控的连续性。鉴于此&#xff0c;会将现有的单节点OCP扩展至多节点部署&#xff0c;以此来确保OCP服务的高…

【HarmonyOS】HMRouter使用详解(四)路由拦截

路由拦截器 可以对指定或全局路由跳转时添加拦截器&#xff0c;作用是可以实现在页面切换前做判断是否有进入当前页面的权限。这篇文章将实现登录的全局路由拦截样式。 新建拦截器类 通过继承IHMInterceptor接口实现生命周期接口的方法重写。 通过添加HMInterceptor装饰器&…

使用Docker部署nextjs应用

最近使用nextjs网站开发&#xff0c;希望使用docker进行生产环境的部署&#xff0c;减少环境的依赖可重复部署操作。我采用的是Dockerfile编写应用镜像方式 docker-compose实现容器部署的功能。 Docker Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器…

大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…