我正在使用Jetty 9.4.9.v20180320
。我已经通过扩展Reverse Proxy
servlet实现了Transparent
。我已经覆盖了rewriteTarget
和filterServerResponseHeader
方法
public class ServicesProxyServlet extends Transparent {
private static final long serialVersionUID = 1L;
@Override
protected String rewriteTarget(HttpServletRequest request) {
...
return rewrittenURI;
}
@Override
protected String filterServerResponseHeader(HttpServletRequest clientRequest, Response serverResponse, String headerName, String headerValue) {
...
return super.filterServerResponseHeader(clientRequest, serverResponse, headerName, headerValue);
}
}
目标服务器在给定的时间间隔内发送chunked
响应。
现在,看来Transparent proxy
在将其发送给客户端之前已收到整个响应,这导致客户端使用504 Gateway Timeout
超时。如果我删除了filterServerResponseHeader
,该错误仍然会发生。
我希望将分块的响应发送到客户端,而不在Transparent proxy
中进行缓冲。这样可以避免客户端超时。如何立即在Transparent proxy
中刷新接收到的数据?该如何处理?