问题现象
WAF配置如图,访问www.raynorli.com的流量,经过WAF后向www-source.raynorli.com转发,但是报错502 Bad Gateway,去往上游服务器被Reset


Troubleshooting
研究了一下发现,雷池WAF的代理时修改请求中的Host头在社区版本中仅支持全局模式修改,想要针对每个二级域名修改时需要专(shou)业(qian)版
这意味着所有向后转发的流量,HTTP Header中的都是固定的source.raynorli.com,这显然是不行的

解决方案
由于这是Nginx的基本功能 ,而雷池使用的是基于Nginx改的Tengine,于是想在配置文件中修改一下试试,ChatGPT一下,给了一些指导,简单测试一下,还是挺容易的
- 进入目录
/data/safeline/resources/nginx/sites-enabled
root@iZuf6fp0fnsdjqewe13cbbZ:/data/safeline/resources/nginx/sites-enabled# pwd
/data/safeline/resources/nginx/sites-enabled
list
出来这是你所有已经配置的站点
root@iZuf6fp0fnsdjqewe13cbbZ:/data/safeline/resources/nginx/sites-enabled# ls -l
total 40
-rw-r--r-- 1 root root 180 Nov 24 22:08 generated
-rw-r--r-- 1 root root 2869 Nov 24 22:15 IF_backend_1
-rw-r--r-- 1 root root 2825 Nov 24 22:08 IF_backend_11
-rw-r--r-- 1 root root 2831 Nov 24 22:08 IF_backend_12
-rw-r--r-- 1 root root 2830 Nov 24 22:41 IF_backend_13
-rw-r--r-- 1 root root 2845 Nov 24 23:02 IF_backend_14
-rw-r--r-- 1 root root 2840 Nov 24 23:03 IF_backend_16
-rw-r--r-- 1 root root 2822 Nov 24 22:08 IF_backend_5
-rw-r--r-- 1 root root 2807 Nov 24 22:08 IF_backend_6
-rw-r--r-- 1 root root 437 Nov 24 23:03 IF_backend_not_found
- 直接修改这个文件
root@iZuf6fp0fnsdjqewe13cbbZ:/data/safeline/resources/nginx/sites-enabled# vi IF_backend_1
- 其中upstream中的server就是我们配置的
upstream backend_1 {
server www-source.raynorli.com:9443;
keepalive 128;
keepalive_timeout 75;
}
- 找到proxy_set_header字段,将其修改成预先做好解析的
www-source.raynorli.com
location ^~ / {
proxy_pass https://backend_1;
proxy_set_header Host "www-source.raynorli.com";
include proxy_params;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
include /etc/nginx/custom_params/backend_1;
- 重新reload nginx
root@iZuf6fp0fnsdjqewe13cbbZ:/data/safeline/resources/nginx/sites-enabled# docker exec -it safeline-tengine /usr/sbin/nginx -s reload
验证效果
可以在内网的Nginx上看到有Session和上传下载的数据
