Я начинаю с littleproxy
, как я могу создать обратный прокси-сервер?Создайте обратный прокси-сервер littleproxy
Мой прокси получает запросы от клиентов и отправляет их на серверы (серверы только на регулярном сайте, такие как www.xxx.com, содержат только веб-страницу (не в состоянии покоя) и прокси получают ответ от сервера (веб-страницы) и возвращают клиент.
Например, клиент URL является localhost:8080/x
, прокси отображает его на www.myserver.com/xy
и показывает xy
страницы для клиента. Как это сделать с помощью фильтра или HttpServlet.
Моего HTTP сервлет будет, как следовать :
public class ProxyFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpProxyServer server =
DefaultHttpProxyServer.bootstrap()
.withPort(8080)
.withFiltersSource(new HttpFiltersSourceAdapter() {
public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
return new HttpFiltersAdapter(originalRequest) {
@Override
public HttpResponse clientToProxyRequest(HttpObject httpObject) {
// TODO: implement your filtering here ????
return null;
}
@Override
public HttpResponse proxyToServerRequest(HttpObject httpObject) {
// TODO: implement your filtering here ????
return null;
}
@Override
public HttpObject serverToProxyResponse(HttpObject httpObject) {
// TODO: implement your filtering here ????
return httpObject;
}
@Override
public HttpObject proxyToClientResponse(HttpObject httpObject) {
// TODO: implement your filtering here ????
return httpObject;
}
};
}
})
.start();
}
public void init(FilterConfig config) throws ServletException {
}
public void destroy() {
}
}