当前位置:论坛首页 > BUG提交 > Linux面板

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

发表在 BUG提交2023-1-8 12:00 [复制链接] 21 11079

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

. 1.jpg 2.png
使用道具 举报 只看该作者 回复
发表于 2023-1-10 09:40:18 | 显示全部楼层
您好,如果可以的话,联系下我们客服,我排查下问题 客服微信.png
使用道具 举报 回复 支持 反对
发表于 2023-1-10 22:09:37 | 显示全部楼层
大炮运维V587 发表于 2023-1-10 09:40
您好,如果可以的话,联系下我们客服,我排查下问题

你直接设置就触发了,我几个服务器都是报错的。
使用道具 举报 回复 支持 反对
发表于 2023-1-16 12:24:41 | 显示全部楼层
宝塔用户_raprok 发表于 2023-1-10 22:09
你直接设置就触发了,我几个服务器都是报错的。

手动将反代配置文件中的
proxy_set_header Host $host;
修改成
proxy_set_header 反代的域名;
然后重启Nginx看下是否正常呢?
使用道具 举报 回复 支持 反对
发表于 2023-1-17 10:15:52 | 显示全部楼层
大炮运维V587 发表于 2023-1-16 12:24
手动将反代配置文件中的
proxy_set_header Host $host;
修改成

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

使用道具 举报 回复 支持 反对
发表于 2023-1-17 10:21:04 | 显示全部楼层
宝塔用户_tncanc 发表于 2023-1-17 10:15
我也遇到了一样的问题,发送域名如果和目标url不一致。就会出现400错误

...

我测试的时候没有复现,您的域名多长?
使用道具 举报 回复 支持 反对
发表于 2023-1-17 10:34:17 | 显示全部楼层
大炮运维V587 发表于 2023-1-17 10:21
我测试的时候没有复现,您的域名多长?

挺长的:xx_xxx.xxxxxxxxxx.com
使用道具 举报 回复 支持 反对
发表于 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看下是否正常呢?

使用道具 举报 回复 支持 反对
发表于 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;
}




使用道具 举报 回复 支持 反对
发表于 2023-1-17 17:19:15 | 显示全部楼层
大炮运维V587 发表于 2023-1-17 11:36
通过上面我提供的方案,可以解决吗?

您好,我回复的问题您那边是否复现
使用道具 举报 回复 支持 反对
发表于 2023-1-17 17:20:58 | 显示全部楼层
宝塔用户_tncanc 发表于 2023-1-17 17:19
您好,我回复的问题您那边是否复现

我就正常的域名。www.dapaoit.com 反代到 www.bt.cn
没有那么长的域名
使用道具 举报 回复 支持 反对
发表于 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 后也正常吗?
使用道具 举报 回复 支持 反对
发表于 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 算啥
使用道具 举报 回复 支持 反对
发表于 2023-1-17 17:49:42 | 显示全部楼层
大炮运维V587 发表于 2023-1-17 17:40
为什么要修改成test.bt.cn
我这个是
www.dapaoit.com 反代 www.bt.cn

设置反代的请求头 host啊
使用道具 举报 回复 支持 反对
发表于 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
使用道具 举报 回复 支持 反对
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析
快速回复 返回顶部 返回列表