宝塔用户_raprok 发表于 2023-1-8 12:00:40

【已完成】发现反向代理BUG,某些设置会报400.

宝塔版本号:7.9.7
nginx版本号:1.20.2
发现反向代理BUG,某些设置会报400。因为项目需要获取域名,发现获取的域名是目标URL的域名,根据nginx的配置,需要把发送域名改成新设置域名,但是一改就报400。

.

大炮运维V587 发表于 2023-1-10 09:40:18

您好,如果可以的话,联系下我们客服,我排查下问题

宝塔用户_raprok 发表于 2023-1-10 22:09:37

大炮运维V587 发表于 2023-1-10 09:40
您好,如果可以的话,联系下我们客服,我排查下问题

你直接设置就触发了,我几个服务器都是报错的。

大炮运维V587 发表于 2023-1-16 12:24:41

宝塔用户_raprok 发表于 2023-1-10 22:09
你直接设置就触发了,我几个服务器都是报错的。

手动将反代配置文件中的
proxy_set_header Host $host;
修改成
proxy_set_header 反代的域名;
然后重启Nginx看下是否正常呢?

宝塔用户_tncanc 发表于 2023-1-17 10:15:52

大炮运维V587 发表于 2023-1-16 12:24
手动将反代配置文件中的
proxy_set_header Host $host;
修改成


我也遇到了一样的问题,发送域名如果和目标url不一致。就会出现400错误

大炮运维V587 发表于 2023-1-17 10:21:04

宝塔用户_tncanc 发表于 2023-1-17 10:15
我也遇到了一样的问题,发送域名如果和目标url不一致。就会出现400错误

...

我测试的时候没有复现,您的域名多长?

宝塔用户_tncanc 发表于 2023-1-17 10:34:17

大炮运维V587 发表于 2023-1-17 10:21
我测试的时候没有复现,您的域名多长?

挺长的:xx_xxx.xxxxxxxxxx.com

大炮运维V587 发表于 2023-1-17 11:36:11

宝塔用户_tncanc 发表于 2023-1-17 10:34
挺长的:xx_xxx.xxxxxxxxxx.com
通过上面我提供的方案,可以解决吗?手动将反代配置文件中的
proxy_set_header Host $host;
修改成
proxy_set_header 反代的域名;
然后重启Nginx看下是否正常呢?

宝塔用户_tncanc 发表于 2023-1-17 12:04:33

本帖最后由 宝塔用户_tncanc 于 2023-1-17 12:15 编辑

大炮运维V587 发表于 2023-1-17 11:36
通过上面我提供的方案,可以解决吗?
不行,这样的格式proxy_set_header 反代域名(目标URL) 保存直接报错。
proxy_set_header Host 反代域名(目标URL) 这样设置才可以,也就是说目前发送域名必须要和目标URL设置成一模一样才可以。location /manage_merchant
{
   proxy_set_header Host ai_api.test.com;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
   proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
   proxy_pass http://ai_api.test.com;
}


现在这边的需求是发送域名要设置成其他域名,下面这样location /manage_merchant
{
   proxy_set_header Host ai.test.com;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
   proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
   proxy_pass http://ai_api.test.com;
}




宝塔用户_tncanc 发表于 2023-1-17 17:19:15

大炮运维V587 发表于 2023-1-17 11:36
通过上面我提供的方案,可以解决吗?

您好,我回复的问题您那边是否复现

大炮运维V587 发表于 2023-1-17 17:20:58

宝塔用户_tncanc 发表于 2023-1-17 17:19
您好,我回复的问题您那边是否复现

我就正常的域名。www.dapaoit.com 反代到 www.bt.cn
没有那么长的域名

宝塔用户_tncanc 发表于 2023-1-17 17:24:31

大炮运维V587 发表于 2023-1-17 17:20
我就正常的域名。www.dapaoit.com 反代到 www.bt.cn
没有那么长的域名

proxy_set_header Host $host
$host 您配置成 test.bt.cn 后也正常吗?

大炮运维V587 发表于 2023-1-17 17:40:15

宝塔用户_tncanc 发表于 2023-1-17 17:24
proxy_set_header Host $host
$host 您配置成 test.bt.cn 后也正常吗?

为什么要修改成test.bt.cn
我这个是
www.dapaoit.com 反代 www.bt.cn
访问www.dapaoit.com 返回的是 www.bt.cn 的内容,改成test.bt.cn 算啥

宝塔用户_tncanc 发表于 2023-1-17 17:49:42

大炮运维V587 发表于 2023-1-17 17:40
为什么要修改成test.bt.cn
我这个是
www.dapaoit.com 反代 www.bt.cn


设置反代的请求头 host啊

宝塔用户_tncanc 发表于 2023-1-17 17:50:41

本帖最后由 宝塔用户_tncanc 于 2023-1-17 17:52 编辑

大炮运维V587 发表于 2023-1-17 17:40
为什么要修改成test.bt.cn
我这个是
www.dapaoit.com 反代 www.bt.cn

现在的问题是 宝塔 反代不能修改请求头里面的host,这个不符合预期我需要修改的是proxy_set_header,不是proxy_pass
页: [1] 2
查看完整版本: 【已完成】发现反向代理BUG,某些设置会报400.