使用apache代理的动态主机名和端口

时间:2016-11-22 19:04:30

标签: apache proxy apache2

是否可以使用apache动态代理主机名和端口:

/<PORT>/<HOSTNAME> -> http://<HOSTNAME>.domain.local:<PORT>

我尝试过使用ProxyPassMatch

ProxyPassMatch "^/([0-9]+)/(host-[0-9]+)$" "http://$2.domain.local:$1"

但apache抛出语法错误AH00526。这是使用apache 2.4.7。

1 个答案:

答案 0 :(得分:1)

来自Apache Docs

  

在 regexp替换之前,URL参数必须可以解析为URL   (以及之后)。这限制了您可以使用的匹配。

我能想到的唯一解决方法是将mod_rewrite[P]标志一起使用:

RewriteEngine On
RewriteRule "^/([0-9]+)/(host-[0-9]+)$" "http://$2.domain.local:$1" [P]

(但这会带来性能损失,同时请注意,使用此类动态代理时,您无法使用ProxyPassReverse调整HTTP重定向响应中的网址。