[TOC]
# :-: 访问网站提示 502 网关错误,连接源站失败

<br/>
> 提示:源站地址 也称 回源服务器、网站服务器、源站服务器
<br/>
<br/>
## **出现错误的原因可能有**:
1. 输入的 `源站地址` 不正确
2. 云WAF配置错误,导致无法正确连接 源站地址
3. 无法连接到 `源站地址`
4. 源站地址的服务未启动
5. 源站地址的服务器负载高,带宽跑满等
<br/>
<br/>
### **输入的 源站地址 不正确**
1. 比较 **`源站地址`** 与 **`网站服务器的IP `** 是否一致
若源站地址使用域名,请检查 解析的记录 是否与 **`网站服务器的IP `** 是否一致
<br/>
2. 验证是否可以连接到 **源站地址**
首先在**云WAF服务器**,检查是否可以连接到 **源站地址**
使用SSH工具登录云WAF的服务器,执行命令检查是否可以连接源站地址:
> 请注意修改:“防护域名” 修改成网站域名,“源站地址” 修改成网站服务器的IP
```
curl -H "Host: 防护域名" http://源站地址
```
<br/>
- 正常一般会返回网站的内容:

- **访问异常**,被拦截了:

- **访问异常**,长时间无法回应并且返回超时


<br/>
3. 如果有错误请修改为正确的 **`网站服务器的IP `**,无法错误请继续检查是否有以下原因:
<br/>
<br/>
### **云WAF配置错误,导致无法正确连接 源站地址**
- 网站服务器的网站配置了 **`强制HTTPS`** ,云WAF的 回源配置 使用 `http` 协议
请到**网站服务器**检查网站配置是否有跳转到 **`https`** ,如:

或 网站配置包含以下类似的内容
`if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}`

<br/>
**云WAF 的 回源配置**:
网站配置 -- > 回源配置

<br/>
**`强制HTTPS`** 的 **解决方法**:
1. 云WAF的 **`回源配置`** 也需要使用 **`https`** 协议进行访问

2. 使用 **`https`** 访问,需要给云WAF上的网站配置SSL证书

3.使用浏览器无痕模式访问网站测试是否正常
<br/>
- 网站服务器的网站 **未** 配置SSL证书,云WAF的 回源配置 使用了 **`https`** 协议


<br/>
**未** 配置SSL证书 **解决方法** :
网站服务器的网站未配置SSL证书,只能使用 `http` 协议访问

<br/>
### **无法连接到源站地址**
首先在**云WAF服务器**,检查是否可以连接到 **源站地址**
使用SSH工具登录云WAF的服务器,执行命令检查是否可以连接源站地址:
> 请注意修改:“防护域名” 修改成网站域名,“源站地址” 修改成网站服务器的IP
```
curl -H "Host: 防护域名" http://源站地址
```
<br/>
- **访问异常**,被拦截了:

- **访问异常**,长时间无法回应并且返回超时


<br/>
访问异常,被拦截了可能有以下原因:
**网站服务器使用 Fail2ban防爆破、Nginx防火墙、Apache防火墙等,将云WAF的服务器IP拦截了**
- Nginx防火墙、Apache防火墙 解决方法:
1. 先将云WAF的服务器IP进行 **解除封锁**

2. 在Nginx防火墙、Apache防火墙将网站的 CDN 勾上开启,或者将云WAF的服务器IP添加到白名单中

3. 最后测试网站是否正常?
<br/>
- Fail2ban防爆破 解决方法:
- 宝塔面板:
1. 从 Fail2ban防爆破 中删除

2. 将云WAF的服务器IP添加到IP白名单中

- 命令行操作:
1. 使用命令行检查是否被封锁
`grep "Ban" /var/log/fail2ban.log`
或者 将 云WAF的服务器IP 更换成您的云WAF的服务器IP
` grep "云WAF的服务器IP" /var/log/fail2ban.log`

2. 若有封锁,使用命令行 **解除封锁**
将<jail-name>替换为相应的Fail2ban 名称,<ip-address> 替换为要解封的IP地址
`sudo fail2ban-client set <jail-name> unbanip <ip-address>`
解除封锁命令参考:
`sudo fail2ban-client set 138.kern123.top-cc unbanip 192.168.247.1`

3. 将云WAF的服务器IP添加白名单,根据您的 Fail2ban 配置文件,添加 ignoreip 配置
/etc/fail2ban/jail.conf 或者 /etc/fail2ban/jail.local
参考:
`/etc/fail2ban/jail.local`
`ignoreip = 192.168.247.1`

<br/>
<br/>
### **除以上案例,可能还有**:
- 云WAF的服务器IP 为非中国大陆的IP,网站服务器开启了禁止境外IP访问,请将 云WAF的服务器IP 添加到白名单允许访问
- 云服务商的安全组禁止了云WAF的服务器IP
- 网站服务器的系统防火墙、端口开放未对 云WAF的服务器IP 进行开放
- 其他的安全软件对 云WAF的服务器IP 进行了封锁
<br/>
<br/>
### **源站地址的服务未启动**
请到 **`网站服务器`**,确保为网站提供服务的已启动。
<br/>
<br/>
### **源站地址的服务器负载高,带宽跑满**
使用SSH工具登录云WAF的服务器使用 `top` 命令检查服务器负载情况
使用SSH工具登录云WAF的服务器使用 `iftop`、`nethogs` 命令检查服务器带宽情况。或者到服务器提供商的后台查看
<br/>
<br/>
如果以上方法无法解决,请联系我们:
**加入微信讨论群**
<img width="239" alt="image" src="https://bt-1251050919.cos.ap-guangzhou.myqcloud.com/btwafGroup.png">