Я пытаюсь использовать мембрану в качестве простого обратного прокси.Когда я пытаюсь переписать URI, он все равно переходит к URI исходного запроса на проксируемом хосте.
public class Proxy {
public static void main(String[] args) throws Exception {
ServiceProxyKey key = new ServiceProxyKey(4000);
ServiceProxy sp = new ServiceProxy(key, "localhost", 8081);
sp.getInterceptors().add(new ProxyInterceptor());
HttpRouter router = new HttpRouter();
router.add(sp);
router.init();
}
static class ProxyInterceptor extends AbstractInterceptor {
@Override
public Outcome handleRequest(Exchange exc) throws Exception {
System.out.println(exc.getRequestURI());
exc.getRequest().setUri("/fish");
System.out.println(exc.getRequest().getUri());
return Outcome.CONTINUE;
}
}
}
Я ожидаю, что путь, передаваемый проксируемому хосту, будет /fish
, но запрос, отправленный на проксируемый сервер через порт 8081, является оригинальным.