Frage

Wir Proxypass verwenden alle "/ r" Anfragen zu umleiten auf Port 18080 auf jboss wie folgt:

ProxyPreserveHost on
ProxyPass /r http://localhost:18080/redirectService/
ProxyPassReverse /r http://localhost:18080/redirectService/

Aber, dass die IP-Adresse in jboss des Zugriffsprotokoll als „127.0.0.1“ angemeldet verursacht. Kennt jemand wie können wir die ursprüngliche IP aus bewahren, wo die Anfrage kam in HttpServletRequest? Wir wollen es acesss von Jboss Servlet-Anfrage in doGet ()

War es hilfreich?

Lösung

Sie können die Original-Host von X-Forwarded-For Header-Feld .

Andere Tipps

Die Antwort von JasonW ist in Ordnung. Aber da Apache 2.4.6 gibt es eine Alternative: mod_remoteip

Alles, was Sie tun müssen, ist:

  1. Mai werden Sie das mod_remoteip Paket installieren müssen
  2. Sie das Modul aktivieren:

    LoadModule remoteip_module modules/mod_remoteip.so
    
  3. Fügen Sie folgendes zu Ihrem Apache Config. Beachten Sie, dass Sie diese Zeile hinzufügen müssen nicht in die Konfiguration des Proxy-Servers. Sie müssen Fügen Sie diese auf die Konfiguration des Proxy-Ziel-httpd-Server (der Server hinter dem Proxy):

    RemoteIPHeader X-Forwarded-For
    

Sehen Sie unter http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html für weitere Informationen und weitere Optionen.

Dies hat eine elegantere Erklärung und mehr als eine mögliche Lösungen. http://kasunh.wordpress.com/2011 / 10/11 / Konservierungs-remote-IPHost-while-Proxying /

Der Beitrag beschreibt, wie man verwenden beliebt und eine weniger bekannte Apache-Module Host / IP zu erhalten, während in einem Setup-Proxying beteiligt ist.

  

Mit Mod_rpaf Modul installieren und im Backend-Server aktivieren, und fügen Sie folgende Richtlinien in der Konfiguration des Moduls.   RPAFenable
  RPAFsethostname
  RPAFproxy_ips 127.0.0.1

(2017 edit) Gegenwärtiger Standort Mod_rpaf: https://github.com/gnif/mod_rpaf

Wenn Sie die Möglichkeit haben, dies zu tun, würde ich empfehlen, entweder mod-jk oder mod-proxy-AJP Anfragen von Apache zu JBoss passieren. Das AJP-Protokoll ist viel effizienter im Vergleich zu HTTP-Proxy-Anforderungen mit und als Vorteil, JBoss wird die Anfrage als von dem ursprünglichen Client und nicht Apache sehen.

Wenn Sie Apache Reverse Proxy verwenden für die Bedienung einer App auf einem lokalen Host-Port laufen Sie einen Speicherort auf Ihrem vhost hinzufügen.

<Location />            
   ProxyPass http://localhost:1339/ retry=0
   ProxyPassReverse http://localhost:1339/
   ProxyPreserveHost On
   ProxyErrorOverride Off
</Location>

Um die IP-Adresse hat folgende Optionen

console.log(">>>", req.ip);// this works fine for me returned a valid ip address 
console.log(">>>", req.headers['x-forwarded-for'] );// returned a valid IP address 
console.log(">>>", req.headers['X-Real-IP'] ); // did not work returned undefined 
console.log(">>>", req.connection.remoteAddress );// returned the loopback IP address 

Also entweder Gebrauch req.ip oder req.headers [ 'x-forwarded-for']

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top