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

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

配置问题

记录常见的配置问题

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

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

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

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

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

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

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

  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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【CTF Web】Pikachu 不安全的url跳转 Writeup(URL重定向+代码审计)

不安全的url跳转 不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。 如果后端采用了前端传进来的(可能是用户传参,或者之前预埋在前端页面的url地址)参数作为了跳转的目的地,而又没有做判断的话 就可能发生"跳错对象"的问题。 url跳转比较直接的危害是:…

springboot 整合 rabbitMQ(2)

springboot 整合 rabbitMQ&#xff08;1&#xff09;-CSDN博客 上期说了rabbitMQ的基础用法&#xff08;普通队列模式&#xff09; 这期学习一下如何防止消息重复消费和进阶用法&#xff08;订阅者模式&#xff09; 目录 重复消费问题 导致 RabbitMQ 重复消费问题的原因&a…

中安未来 OCR:开启高效身份证件识别新时代

在数字化快速发展的今天&#xff0c;高效准确地处理各类信息变得至关重要。中安未来 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术以其卓越的性能和广泛的应用场景&#xff0c;成为了众多企业和机构的得力助手。其中&#xff0c;身份…

网优学习干货:王者荣耀游戏用户体验洞察及质差识别(2)

王者荣耀卡顿特点 影响时延的因素 手游定界定位解决方案 基于“9段法”进行卡顿问题分解 通过数据关联->体验定标->优化提升&#xff0c;改善手游卡顿 无线侧通过“面”和“点”优化改善空口时延 参数及互操作策略优化提升业务感知 传输优化准确定位管道问题——无TWAM…

亚信安全与鲁信科技达成合作,共筑“数字生态圈”安全未来

近日&#xff0c;亚信安全科技股份有限公司&#xff08;以下简称“亚信安全”&#xff09;正式与鲁信科技股份有限公司&#xff08;以下简称“鲁信科技”&#xff09;签订合作框架协议。双方强强携手&#xff0c;将围绕数字时代企业网络安全建设&#xff0c;在业务开拓、技术合…

创客项目秀|基于XIAO ESP32C3的本地个人助理Mr.M

作者&#xff1a;Matthew Yu 来自&#xff1a;Fab academy 在数字化时代的浪潮中&#xff0c;柴火创客空间作为创新与实践的摇篮&#xff0c;不仅为Fab Academy 2024的学员们提供了一个充满活力的学习和创作环境&#xff0c;更是将科技的力量与人文关怀深度融合。今天&#x…

学习笔记——交换——STP(生成树)简介

一、技术背景 1、生成树技术背景 交换机单线路组网&#xff0c;存在单点故障(上左图)&#xff0c;上行线路及设备都不具备冗余性&#xff0c;一旦链路或上行设备发生故障&#xff0c;业务将会中断。 为了使得网络更加健壮、更具有冗余性&#xff0c;将拓扑修改为(上右图)接入…

【直观详解】泰勒级数

非常好的一篇 泰勒展开式的 推理过程 【直观详解】泰勒级数 | Go Further | Stay Hungry, Stay Foolish 函数f(x)cos(x) 函数的逼近过程

FLUKE9500B福禄克9500B示波器校准仪

FLUKE9500B示波器校准器 福禄克9500B示波器校准仪 9500B 示波器校准器的特点 自动化示波器校准可能体现许多校准实验室中生产力的提高。如果是手动&#xff0c;则该项工作需要熟练的操作人员花费大量的时间执行基本上是重复的任务。半自动化或自动化的方案显然能够解决这一问…

2024年看项目管理软件与工程项目管理的奇妙融合

一、禅道在项目管理中的全面应用 禅道在产品管理方面&#xff0c;能够清晰地对产品的需求进行全方位管理。从需求的提出到详细信息的记录&#xff0c;再到状态、负责人以及完成进度的跟踪&#xff0c;都能有条不紊地进行。产品经理可以通过禅道制定合理的产品规划&#xff0c;…

讯飞与腾讯云:Android 语音识别服务对比选择

目录 一、讯飞语音识别 1.1 讯飞语音识别介绍 1.1.1 功能特点 1.1.2 优势 1.2 接入流程 1.2.1 注册账号并创建应用 1.2.2 下载SDK等相关资料 1.2.3 导入SDK 1.2.4 添加用户权限 1.2.5 初始化讯飞SDK 1.2.6 初始化语音识别对象 1.2.7 显示结果 二、腾讯云语音识别 …

Django一分钟:DRF生成OpenAPI接口文档

DRF项目中如果想要自动生成API文档我们可以借助drf-spectacular这个库&#xff0c;drf-spectacular非常强大&#xff0c;它可以自动从DRF中提取信息&#xff0c;自动生成API文档&#xff0c;配置简单开箱即用&#xff0c;并且它对很多常用的第三方如&#xff1a;SimpleJWT、dja…

Spark练习-RDD创建,读取hdfs上的数据,指定rdd分区

目录 RDD的创建 读取HDFS上文件数据 RDD分区指定 RDD的创建 将python数据转为rdd # 将Python数据转为rdd data [1,2,3,4] res sum(data) # 使用python的方法计算时&#xff0c;采用的单机资源计算&#xff0c;如果数据量较大时&#xff0c;可以将python数据转为spark的r…

JavaWeb——Vue:打包部署(Nginx、目录介绍、部署及启动、访问 )

目录 打包 部署 Nginx 目录介绍 部署及启动 访问 前端 Vue 项目的最后一步是打包部署。在当前前后端分离的开发模式中&#xff0c;前端开发人员开发前端代码&#xff0c;后端开发人员开发后端代码。最终要将开发及测试完毕的前端 Vue 代码和后端代码分开部署在对应的服…

CentOS 7.9 局域网配置指定同步时间服务器

在 CentOS 7.9 中&#xff0c;默认的时间同步工具是 chrony。以下是如何配置 NTP 服务器地址并使用 chrony 进行时间同步的步骤&#xff1a; 1. 安装 chrony&#xff08;通常已经预装可忽略&#xff09; 通过systemctl status chronyd检查是否已经安装启动 如果没网可以直接…

SpringBoot框架下购物推荐网站的设计模式与实现

3系统分析 3.1可行性分析 通过对本东大每日推购物推荐网站实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本东大每日推购物推荐网站采用JAVA作为开发语言&…

AD查看任意角度PCB的3D效果图

点击 视图 - > 切换到3维模式啥键都不按&#xff0c;滚动鼠标滚轮&#xff0c;3D图上下移动&#xff1b;这个很简单&#xff0c;经常用&#xff1b;按住Ctrl,滚动鼠标滚轮&#xff0c;3D图缩放&#xff1b;这个很简单&#xff0c;经常用&#xff1b;按住Shift&#xff0c;滚…

jenkins 插件SSH Pipeline Steps

一、安装 SSH Pipeline Steps | Jenkins plugin 二、添加全局linux服务器用户名密码&#xff1a;linux-142 三、新建流水线SshServer 添加Pipeline Script node {def remote [:]remote.name tstremote.host 192.168.31.142remote.allowAnyHosts truewithCredentials([usern…

【机器学习】朴素贝叶斯算法|商品评论情感分析案例介绍及代码实现

文章目录 朴素贝叶斯算法朴素贝叶斯算法介绍概率数学基础复习朴素贝叶斯算法-利用概率值进行分类的一种机器学习算法贝叶斯公式朴素贝叶斯算法拉普拉斯平滑系数 朴素贝叶斯API案例分析流程数据集代码实现运行结果 朴素贝叶斯算法 朴素贝叶斯算法介绍 概率数学基础复习 条件概…

1.4 使用Vite创建Vue 3项目

文章目录 什么是 ViteVite 的优点注意事项 创建 Vue 3 项目手动创建项目通过模板自动创建项目启动项目 Vue 3 项目目录结构Vue 3 项目运行过程项目运行过程项目关键文件 大家好&#xff0c;今天我们将一起学习如何使用 Vite 创建一个 Vue 3 项目。Vite 是一个现代的前端构建工具…