我有一个问题,让 HTTP 代理通过代理发出请求。
情况如下: - 我从家里连接到公司的 VPN。 - VPN 有一个代理服务器,我已经配置了它并且它工作正常。我现在可以访问所有公司内部 URL。
现在我遇到的情况是 Apache 也需要通过同一个代理检索 URL。这就是问题所在。请求超时。从浏览器我可以正常访问该内部 URL,因为浏览器正在使用代理来处理其请求。
那么如何设置 Apache 来使用代理?
请注意,我不是问如何让 ProxyPass 工作,而是尝试让它工作:
<Location /shared_resources_url/>
ProxyPass http://www.internalcompanyserver.com/shared_resources_url/
ProxyPassReverse http://www.internalcompanyserver.com/shared_resources_url/
</Location>
因此,Apache 需要访问 internalcompanyserver.com 。如何配置 Apache 以使用公司代理?
我当然尝试过用 Google 搜索这个,但是我得到了很多关于 ProxyPass 的结果,而不是关于实际上让 Apache 首先通过代理连接的结果。
我希望有人明白我的问题并能帮助我!:)
答案1
看起来 ProxyRemote 设置可能会满足您的要求: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxyremote
答案2
(apache)您可以在虚拟主机中声明您的 Web 代理:
ProxyRemote http http://xxxxxxx:8080
ProxyRemote https http://xxxxxxx:8080
ProxyRemote ftp http://xxxxxxx:8080
或者
ProxyRemote * http://xxxxxxx:8080
否则,在 /etc/sysconfig/httpd 中,您可以添加:
export http_proxy="http://xxxxxxx:8080/"
export https_proxy="http://xxxxxxx:8080/"
(但这适用于所有虚拟主机......)
答案3
问题是你期望错了。如果你想检索 URL,那么它可以通过 apache 内部运行的代码来完成。据我所知,apache 用于提供内容而不是检索内容。检索内容是通过代码(如 php、java 等)或 wget 或 curl 等工具完成的。wget 和 curl 都很好地支持通过代理进行连接。