反向代理提示该网站已被拦截,请教

7 小时 40 分钟前
 awanganddong

域名是在阿里云,服务器 a 也是在阿里云。 然后通过反向代理指向本地服务器 b 。

如果在 nginx 配置中增加下边几项就报上边的错误。

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

如果去除这几项就正常了。

所以想请问下,这种情况是怎么造成的。不理解。

821 次点击
所在节点    NGINX
8 条回复
jucelin
7 小时 38 分钟前
拦截是不是未备案拦截?
InDom
7 小时 36 分钟前
这几个 header 主要分两类,

proxy_set_header Host $host; 指定了一个主机名, 检查是否正确指向目标服务器,以及目标服务器是否允许接受这个 host.

剩下的都是关于“构造、伪造”客户端 IP 的流程, 不是说你在伪造, 而是有可能被目标系统认为你在伪造,所以检查到目标服务器(到程序)的链路中是否做了类似的判断.
summerwar
7 小时 33 分钟前
贴下 nginx 的完整配置和日志的完整信息,搞技术又不能靠猜,除非之前自己遇到过
awanganddong
7 小时 26 分钟前
@jucelin 拦截是该网站已被拦截提示。
没有其他的消息。

这些 proxy_set_header 配置项主要是用于传递客户端的请求信息给后端服务器,不会直接检测或暴露后端服务器的相关信息,但可能会间接影响到访问。以下是这些配置项的作用和对后端服务器的影响:

proxy_set_header Host $host;

这个配置项会将客户端请求的域名信息传递给后端,目的是让后端服务器“认为”它正在直接接收来自用户的请求,而不是来自代理服务器。
不会暴露后端信息:只是转发客户端请求的主机信息,对后端服务器的配置或 IP 没有直接暴露作用。
proxy_set_header X-Real-IP $remote_addr;

将客户端的真实 IP 地址传递给后端,以便后端服务器可以识别用户的真实来源 IP 。
不会暴露后端信息:此头信息用于传递客户端 IP ,只影响后端获取的用户 IP 信息。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

将用户的真实 IP 地址和代理链(经过的代理服务器 IP )传递给后端服务器,以帮助后端识别请求的来源链条。
不会暴露后端信息:该头信息只是用来传递经过的代理链信息,不包含后端服务器的配置信息。
proxy_set_header X-Forwarded-Proto $scheme;

这个配置项传递了用户请求的协议( HTTP 或 HTTPS )信息给后端服务器,使后端知道客户端请求的原始协议。
不会暴露后端信息:此配置仅包含客户端协议信息,对后端服务器没有信息泄露的风险。


所以是很奇怪的
mmdsun
7 小时 9 分钟前
做了校验不让反代 你把 hosts 设置你要代理的网址试试看。

location /otherweb/ {
proxy_pass https://test.com.cn/;
proxy_set_header Host "test.com.cn";
yinmin
6 小时 57 分钟前
是这行命令造成的:proxy_set_header Host $host;
awanganddong
2 小时 31 分钟前
@yinmin @mmdsun 我刚测试了,确实是 proxy_set_header Host $host; 造成的。
giantreaper0
1 小时 17 分钟前
$host 和 $http_host 基本等同于当前浏览器的主机名,那肯定是 a, 服务器 b 识别出来不是 b 所以提示拦截。
有两种解决方式
1. proxy_set_header Host "example.com"; // 写死被代理服务器的主机名
2. proxy_set_header Host $proxy_host; // 自动根据 proxy_pass 的后端地址生成

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1091390

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX