apache - PHP防止代理覆盖标头
问题描述
我想使用 curl访问dnsserver.icu
通过此代理托管的 PHP 脚本。207.154.231.211:8080
问题是代理服务器似乎确实用302代码覆盖了 HTTP 200代码,从而无法访问脚本。
curl -v dnsserver.icu
给出以下输出:
* Rebuilt URL to: dnsserver.icu/
* Trying 134.122.73.150...
* TCP_NODELAY set
* Connected to dnsserver.icu (134.122.73.150) port 80 (#0)
> GET / HTTP/1.1
> Host: dnsserver.icu
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Wed, 15 Apr 2020 20:05:18 GMT
< Server: Apache/2.4.29 (Ubuntu)
< Content-Length: 31
< Content-Type: text/html; charset=UTF-8
<
* Connection #0 to host dnsserver.icu left intact
而curl -v -x 207.154.231.211:8080 dnsserver.icu
给出了意想不到的结果:
* Rebuilt URL to: dnsserver.icu/
* Trying 207.154.231.211...
* TCP_NODELAY set
* Connected to 207.154.231.211 (207.154.231.211) port 8080 (#0)
> GET http://dnsserver.icu/ HTTP/1.1
> Host: dnsserver.icu
> User-Agent: curl/7.58.0
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 302 Found
< Location: http://206.189.153.135
< Date: Wed, 15 Apr 2020 20:08:37 GMT
< Connection: keep-alive
< Transfer-Encoding: chunked
<
* Connection #0 to host 207.154.231.211 left intact
Location 标头中的地址有时也会发生变化。
我已经尝试过不同的标头配置,但我无法让它工作。当我记录对 PHP 脚本的每次调用时,看起来代理甚至都没有访问服务器(没有记录调用)。此外,apache 访问日志为空。
奇怪的是,并非所有域都如此。我可以通过代理访问 eg或不太流行的域ip-api.com
,例如(但不是 45.33.35.141 的 ip 等价物)。google.com
proxyjudge.us
我不知道这种行为的原因是什么。在标头设置或 apache 配置方面是否有任何“技巧”可以dnsserver.icu
通过此代理进行访问?有什么我没有坚持的吗?
我很感激任何帮助。
解决方案
推荐阅读
- r - 如何在 R 中使用 FOR 循环访问多维列表元素
- javascript - nodeJs中成对的可分总和?
- asp.net-core - 如何在 .Net Core / Visual Studio 中创建微服务
- html - 模式仅在刷新 10 次后弹出一次。为什么这样做?
- python - LabelPropagation - 如何避免被零除?
- rebus - Accepting command and raising events from a service
- node.js - 如何在节点js子进程中进行多线程
- angular - 如何以表格形式发送 mat-chip-list
- javascript - d3.v5 中的正则表达式无效
- javascript - 使用 ajax 上传时 PHP $_FILES 为空