SafeLine/doc/docs/03-faq/03-config.md
2023-11-21 16:53:22 +08:00

79 lines
No EOL
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "配置问题"
---
# 配置问题
记录常见的配置问题
## 配置后网站无法访问,排查思路
如果按照指引配置了站点,但配置的网站无法访问
梳理问题可能存在的几个原因:
1.配置站点错误ip错误、端口冲突等
2.雷池端与配置的站点网络不通
3.访问雷池配置的站点端口网络不通,对于雷池端已配置的端口没有被开放访问(防火墙、安全组等)
## 排查步骤:
1. 明确 “网站无法访问” 的具体表现:
* 如果 `502 Bad Gateway tengine`
![Alt text](/images/docs/guide_config/tengine_502.png)
大概率是是雷池的上游服务器配置不正确,或者雷池无法访问到上游服务器。请继续按下面步骤排查,重点排查步骤 6、7
* 如果请求能够返回但是十分缓慢
* 首先确认服务器负载是否正常
* 检查服务器的CPU、内存、带宽使用情况
* 在客户端执行命令,检查雷池服务器与上游服务器的网络:`curl -H "Host: <SafeLine-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说明雷池配置正确网络正常
![Alt text](/images/docs/guide_config/check_the_site1.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 提交反馈,附上排查过程。有的话继续下一步
![Alt text](/images/docs/guide_config/check_listen_port.png)
6. 在雷池设备上 `curl -H "Host: <域名或者IP>" <上游服务器地址>`。如能获取到业务网站的响应,说明雷池设备和站点网络没有问题
![Alt text](/images/docs/guide_config/check_the_site2.png)
* 如果步骤 4 失败而这里成功,可能是配置错误,查看配置站点教程确认配置是否正确,如无法解决,请通过社群或者 Github issue 提交反馈,附上排查过程
* 如果这步失败,说明雷池和上游服务器之间的网络存在问题。请排查网络,确保雷池可以访问到上游服务器
## 配置完成后,测试时返回 400 Request Header Or Cookie Too Large
请麻烦检查是否形成了环路,即:雷池将请求转发给上游服务器后,上游服务器又将请求转发回雷池。
## 问题无法解决
1. 通过右上角搜索检索其他页面
2. 通过社群(官网首页加入微信讨论组)寻求帮助或者 Github issue 提交反馈,并附上排查的过程和截图