-IP real para NGINX + WILDFLY-LB + WILDFLY:
Vamos a explicar como parchear el undertow del Wildfly 10.1.0 que se usa como balanceador (con modcluster) para que en nuestra aplicación salga la Ip real del cliente.
Ante esta situación:
CLIENTE(10.2.10.61) – NGINX(10.0.210.5) – WILDFLY/LB(10.0.210.34) – WILDFLY/APP(10.0.210.33)
Ahora nos salía esto:
10.0.210.34 forwarded for 10.0.210.5
Esto lo tienen preparado en el código de Undertow pero no es configurable, por eso hay que parchearlo.
Se ha parcheado para que resuse el X-Forwarded-For al usar el modcluster como balanceador:
diff –git a/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java b/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java
index f479029..aeb8c27 100644
— a/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java
+++ b/core/src/main/java/io/undertow/server/handlers/proxy/ProxyHandler.java
@@ -121,7 +121,7 @@
private final int maxConnectionRetries;
public ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next) {
– this(proxyClient, maxRequestTime, next, false, false);
+ this(proxyClient, maxRequestTime, next, false, true);
}
/**
Y ahora sale así:
10.0.210.34 forwarded for 10.2.10.61,10.0.210.5
Siendo la IP 10.2.10.61 la IP real del cliente.
0 comentarios