Undertow:如何控制选择主机取决于请求正文内容?
Posted
技术标签:
【中文标题】Undertow:如何控制选择主机取决于请求正文内容?【英文标题】:Undertow: How to control choosing host depends on request body content? 【发布时间】:2019-03-07 18:33:24 【问题描述】:我尝试像这样实现自己的代理:
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
是否可以在 Undertow 代理中使用?
附:如果无法进行undertow,我准备切换到另一个代理
【问题讨论】:
【参考方案1】:我正在使用 Jetty org.eclipse.jetty.proxy.ProxyServlet
管理后端的动态列表。
您可以选择目标后端覆盖:
org.eclipse.jetty.proxy.AbstractProxyServlet.rewriteTarget(HttpServletRequest)
(我也只想使用 Undertow)
【讨论】:
以上是关于Undertow:如何控制选择主机取决于请求正文内容?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WildFly 中设置 Undertow MAX_ENTITY_SIZE
为啥很多SpringBoot开发者放弃了Tomcat,选择了Undertow?
如何在从 servlet 过滤器执行 HTTP 重定向时保留请求正文