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

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

配置问题

记录常见的配置问题

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

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

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

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

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

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

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

  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.rhkb.cn/news/447578.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考《信息系统运行管理员》- 5.2 信息系统数据资源例行管理

5.2 信息系统数据资源例行管理 文章目录 5.2 信息系统数据资源例行管理数据资源例行管理计划数据资源载体的管理存储介质借用管理存储介质转储管理存储介质销毁管理 数据库例行维护健康检查数据库日志检查数据库一致性检查 数据库监测管理数据库备份与恢复数据库备份与恢复数据…

三子棋(C 语言)

目录 一、游戏设计的整体思路二、各个步骤的代码实现1. 菜单及循环选择的实现2. 棋盘的初始化和显示3. 轮流下棋及结果判断实现4. 结果判断实现 三、所有代码四、总结 一、游戏设计的整体思路 &#xff08;1&#xff09;提供一个菜单让玩家选择人机对战、玩家对战或者退出游戏…

生成式人工智能助长更复杂的网络攻击

网络安全公司 Keeper Security 表示&#xff0c;尽管黑客使用生成式人工智能使网络威胁更加频繁、更加复杂、更难以检测&#xff0c;但许多企业表示对此并未做好准备。 然而&#xff0c;据该公司表示&#xff0c;尽管各组织需要加强防御能力&#xff0c;但他们已经实施的许多基…

从调用NCCL到深入NCCL源码

本小白目前研究GPU多卡互连的方案&#xff0c;主要参考NCCL和RCCL进行学习&#xff0c;如有错误&#xff0c;请及时指正&#xff01; 内容还在整理中&#xff0c;近期不断更新&#xff01;&#xff01; 背景介绍 在大模型高性能计算时会需要用到多卡&#xff08;GPU&#xf…

接口性能测试,这个还真有用啊。

一、概述 性能测试按照不同视角&#xff0c;可以分为以下几类&#xff1a; a. 用户视角的性能 用户角度感受到的网站响应速度的快和慢。从用户在浏览器输入网址/打开应用&#xff0c;到整个页面呈现给用户的耗时。包含了用户端发送请求&#xff0c;服务端收到并执行请求&…

Python和MATLAB及C++和Fortran胶体粒子数学材料学显微镜学微观流变学及光学计算

&#x1f3af;要点 二维成像拥挤胶体粒子检测算法粒子的局部结构和动力学分析椭圆粒子成链动态过程定量分析算法小颗粒的光散射和吸收活跃物质模拟群体行为提取粒子轨迹粘弹性&#xff0c;计算剪切模量计算悬浮液球形粒子多体流体动力学概率规划全息图跟踪和表征粒子位置、大小…

StableDiffusion|833种艺术家风格项目,提示词直接上手! AI绘画文生图直接抄!

大家好&#xff0c;我是画画的小强 众所周知&#xff0c;Stable Diffusion是一个强大的文生图模型&#xff0c;能够根据用户的文本描述生成高质量的图像。在这个过程中&#xff0c;提示词&#xff08;Prompt&#xff09;的选择和构造具有至关重要的作用。提示词是向模型描述你…

强化学习之Q-learning算法

前言&#xff1a; 在正文开始之前&#xff0c;首先给大家介绍一个不错的人工智能学习教程&#xff1a;https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程&#xff0c;感兴趣的读者可以自行查阅。 一、算法介绍 Q-Learning是一种基于值函数的强…

山西农业大学20241015

02-VUE 一. Vue中常用的指令1. Vue指令概述2 Vue中指令的分类3 Vue中指令3.1 内容渲染指令3.2 条件渲染指令3.2.1 v-show3.2.2 v-if3.2.3 v-else 和 v-else-if 3.3 事件绑定指令 v-on--重要3.3.1 内联语句3.3.2 methods中的函数名 一. Vue中常用的指令 1. Vue指令概述 概念: 指…

STL --- list(C++)

本期鸡汤&#xff1a; “星光不负赶路人&#xff0c;时光不负有心人&#xff1b;你只管努力&#xff0c;剩下的交给时间。” 目录 1.list的介绍即使用 1.1list介绍 1.2list使用 1.2.1list构造 1.2.2list的iterator的使用 1.2.3list capacity 1.2.4list element access 1…

LeCun数十年经验之谈:视觉是建立AGI的核心,视频理解难点在哪?语言模型技术为何难以复用于视觉?

文字来源 | 夕小瑶科技说 AI寒武纪 大语言模型&#xff08;LLM&#xff09;已经接近人类水平&#xff0c;但视觉理解在世界范围似乎尚未突破&#xff0c;那么为何不能直接将LLM技术用于视觉&#xff1f;让AI看视频的难点在哪&#xff1f;如果语言是AGI必要的能力&#xff0c;为…

【Java 22 | 6】 深入解析Java 22 :记录(Records)增强详解

Java 22 对记录&#xff08;Records&#xff09;进行了重要的增强&#xff0c;进一步提升了这一特性在数据建模和类型安全方面的灵活性。以下是对记录类的详细介绍&#xff0c;包括基础概念、增强特性、使用场景、实际项目中的应用示例&#xff0c;以及示例代码。 1. 基础介绍…

使用js和canvas实现简单的网页贪吃蛇小游戏

玩法介绍 点击开始游戏后&#xff0c;使用键盘上的↑↓←→控制移动&#xff0c;吃到食物增加长度&#xff0c;碰到墙壁或碰到自身就游戏结束 代码实现 代码比较简单&#xff0c;直接阅读注释即可&#xff0c;复制即用 <!DOCTYPE html> <html lang"en"…

快速理解http的get和post

在网络通信中&#xff0c;HTTP 协议扮演着非常重要的角色&#xff0c;而不同的 HTTP 方法决定了客户端与服务器之间的交互方式。 这里讲一下最常用的两种方法——GET 和 POST。 一、GET 方法 GET 方法用于从服务器获取资源。 这就像去图书馆借书——你向图书馆请求一本特定的…

【JVM】内存分析工具JConsole/Visual VM

1 缘起 日常补充JVM调优&#xff0c;调优实践前需要学习一些理论做支撑&#xff0c; JVM调优三步&#xff1a;理论>GC分析>JVM调优&#xff0c; 我们会有一些玩笑话说&#xff0c;做了这么久Java开发&#xff0c;做过JVM调优吗&#xff1f; 做过&#xff0c;面试时。当然…

java中连接Mysql以及PreparedStatement如何防止sql注入

目录 JDBC 使用JDBC连接到MySQL 使用 Statement 使用 PreparedStatement Statement 和 PreparedStatement 区别 在 java 中如何连接到 MySQL 数据库&#xff0c;执行 SQL 查询&#xff0c;并处理查询结果&#xff1f; JDBC java 程序连接到 mysql&#xff0c;首先需要下…

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

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

实用宝典:元器件外贸独立站电子元件数据库设置完全手册

对于投身于元器件外贸领域的企业来说&#xff0c;如何建立一个既能凸显自身特色又具备高度功能性与良好用户体验的独立站&#xff1f;而在这一过程中&#xff0c;#电子元件数据库#作为独立站的核心要素之一&#xff0c;它的构建质量和管理方式又将如何直接影响网站的整体竞争力…

BMS、EMS PCS 简介

1 储能系统的构成 完整的电化学储能系统主要由电池组、电池管理系统&#xff08;BMS&#xff09;、能量管理系统&#xff08;EMS&#xff09;、储能变流器&#xff08;PCS&#xff09;以及其他电气设备构成。 在储能系统中&#xff0c;电池组将状态信息反馈给电池管理系统BMS&…

zookeeper客户端

启动单机版的zookeeper 配置Maven环境 (1) IDEA自带maven (2) 更新Maven库镜像地址&#xff1a; ① 拷贝D:\Program Files\JetBrains\IntelliJ IDEA 2018.3.5\plugins\maven\lib\maven3\conf\settings.xml [IntelliJ的安装目录]到 C:/用户/username/.m2 (如果.m2文件不存在&…