问题描述
我正在使用Apache作为反向代理。
这是我的用例:
我创建了一个/nm
URL,后跟NodeAddress
和URL
因此,假设我想从节点IP 1.2.3.4:8080
获得响应,URL为/describe
,我到Apache代理的URL将为/nm/1.2.3.4:8080/describe
,并且我希望Apache反向代理能够获得http://1.2.3.4:8080/describe
<LocationMatch "^/nm/(?<nodeaddress>.*:8080)/(?<url>.*)">
ProxyPassInterpolateEnv On
ProxyPass "http://%{env:MATCH_NODEADDRESS}/%{env:MATCH_URL}" connectiontimeout=1800 timeout=1800
</LocationMatch>
但是,这似乎不起作用。 Apache服务器无法使用此配置启动,并且显示无效的URL。
我在Nginx中实现了类似的目的,但想使其在Apache中工作。
location ~* ^(\/nm\/(?<nodeAddress>.*:8080)\/(?<url>.*)$) {
resolver 127.0.0.1;
resolver_timeout 1s;
proxy_pass http://$nodeAddress/$url$is_args$args;
proxy_redirect ~*http(s)?:\/\/(.*:8080)\/(.*) /nm/$2/$3;
}
在Nginx中,我也可以使用?args
传递$is_args$args
参数。我想用Apache反向代理来实现类似的目的。在Nginx中,我还可以将proxy_redirect
的302重定向重新写回到/nm
我想在Apache代理中获得类似的结果。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)