【发布时间】:2014-12-25 06:16:34
【问题描述】:
我正在尝试将 apache 服务器配置为代理,但遇到了一些问题。
我想要的是能够从我的家用计算机向服务器上运行的 apache 发出请求,并让 apache 将此请求转发到最终目的地。
请求必须看起来好像来自服务器,并且它必须携带从我的家用计算机传递到 apache 服务器的基本身份验证标头。
我尝试过使用 mod_proxy 并且很简单:
ServerName proxy.server.com
ProxyRequests On
ProxyVia Block
RewriteEngine on
<Proxy *>
Order deny,allow
Allow from all
SetEnv proxy-chain-auth
SetEnv proxy-sendcl
</Proxy>
ProxyPass / http://api.finaldestination.com/v1/
ProxyPassReverse / http://api.finaldestination.com/v1/
这很好,除了最终目标服务器正在重定向我(302 响应),所以我假设它接收到请求 url 是 proxy.server.com 而不是 api.finaldestination.com 的事实。
我也尝试了 RewriteRule
RewriteRule ^something/(.*)$ http://api.finaldestination.com/v1/something/$1 [P]
但现在基本身份验证标头没有通过,我从 api.finaldestination.com 得到 404
我显然在这里遗漏了一些明显的东西 - 有人可以帮忙吗?
我使用的是 Ubuntu 12.04
【问题讨论】:
-
您是否取消了 apache.conf 或 httpd.conf 文件中代理 mod 行的加载模块部分的注释
-
您需要在启动时加载模块,然后在虚拟主机块中输入正确的条目。
-
我使用了 a2enmod 代理和 a2enmod 重写 - 我的 httpd.conf 只是一个包含上述内容的 VirtualHost 块。
-
您使用的是哪个操作系统平台??
-
我使用的是 ubuntu 12.04
标签: apache mod-rewrite proxy mod-proxy