JavaUndertow:如何根据请求正文内容控制主机的选择?
我尝试实现自己的代理,如下所示:
LoadBalancingProxyClient loadBalancer = new LoadBalancingProxyClient()
.addHost(new URI("http://localhost:8080"))
.addHost(new URI("http://localhost:7777"))
.setConnectionsPerThread(20);
Undertow reverseProxy = Undertow.builder()
.addHttpListener(8081, "localhost")
.setIoThreads(1)
.setHandler(ProxyHandler.builder().setProxyClient(loadBalancer).setMaxRequestTime(30000).build())
.build();
reverseProxy.start();
我想控制选择代理服务器。取决于请求主体,我想选择localhost:8080
或localhost:7777
在底拖代理中可能吗
另外,如果无法进行下拖,我准备切换到另一个代理
# 1 楼答案
我正在使用Jetty
org.eclipse.jetty.proxy.ProxyServlet
管理后端的动态列表您可以选择目标后端覆盖:
org.eclipse.jetty.proxy.AbstractProxyServlet.rewriteTarget(HttpServletRequest)
(我也只想使用底拖)