PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nginx als Proxy



Skipper74
24.10.15, 20:25
Hallo,

ich habe folgende Konfig.

1 öffentliche IP.

3 VMs

1. VM: Proxy, nimmt http und https engegen und verteilt diese entsprechend, welche Domain (Url) aufgerufen wird an VM2 und VM3

VM 2: Domain A

VM 3: Domain B

Auf VM 1 läuft NGINX und ist wie folgt konfiguriert:

server {

listen 80;
server_name DOMAIN A;

access_log /var/log/nginx/config.schoenberg.eu.com.access.log;
location / {


proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://INTERNE IP;
}


}


Das funktioniert auch. Aber leider stehen in den Logfiles die IP von VM 1. Gibt es eine Möglichkeit, dass auch die IP weitergereicht wird, also die IP vom PC, der die Webseite aufruft?

Viele Grüße
Uli

Isengard
26.10.15, 12:52
Hallo Uli,

mal grob aus der Doku:



log_format reverseLog '$remote_addr forwarded for $http_x_real_ip - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';

access_log /var/log/nginx/config.schoenberg.eu.com.access.log reverseLog;


- Link: http://nginx.org/en/docs/http/ngx_http_log_module.html

Gruß P.

marce
26.10.15, 13:26
Das funktioniert auch. Aber leider stehen in den Logfiles die IP von VM 1. Gibt es eine Möglichkeit, dass auch die IP weitergereicht wird, also die IP vom PC, der die Webseite aufruft?
Hm, wenn ich unserer Konfig so durchschaue sollte das eigentlich
proxy_set_header X-Real-IP $remote_addr; genau das machen. Bei uns tut's das auch.

edit:Ah, ok, klar. Das Logging muss natürlich auch passen.

Skipper74
26.10.15, 14:42
Hallo,

auf den Webservern von VM2 und VM3 läuft Apache 2.4. Habe dort das rpaf-Modul eingerichtet und angepasst. In den Apache Logs wird nun die Client-IP geloggt, aber in den Logs der Webanwendung wird immer noch die IP des proxy eingetragen, gibt es einen Weg, dass überall die Client-IP eingetragen wird?

Viele Grüße

marce
26.10.15, 14:56
meinst Du sowas? http://serverfault.com/questions/618456/getting-the-client-ip-when-passing-through-a-reverse-proxy

(also die IP, die die WebApp selbst sieht und loggt?)

TheDarkRose
26.10.15, 15:26
Naja, halt in deiner Webanwendung das Logging unkonfigurieren. Falls das nicht geht -> Pech ;)