是否可以使用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。
答案 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重定向响应中的网址。