让 Apache 通过代理连接

让 Apache 通过代理连接

我有一个问题,让 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 都很好地支持通过代理进行连接。

相关内容