Sziasztok!
Ti hogyan oldanátok meg, hogy a php-ben a REMOTE_ADDR érték a kliens IP címét adja vissza és ne a haproxy-ét.
A haproxy és a web szerver is Ubuntu 16.04 ez régen (12.04) az upgradek előtt jól működött az rpaf-val, most sem rpaf sem remoteip nem segít.
előre is köszönöm!
- 950 megtekintés
Hozzászólások
Erre való papíron a `HTTP_X_FORWARDED_FOR` header.
- A hozzászóláshoz be kell jelentkezni
így így. ehhez az "option forwardfor"-t meg kell adni a konfigban, ha jól tudom.
ugyanezt a célt szolgálja cloudflare-nél az egyedi http_cf_connecting_ip header is.
- A hozzászóláshoz be kell jelentkezni
Ezek megvannak, de mégsem a kliens ip-je látszik hanem a haproxy-é a HTTP_X_FORWARDED_FOR és X-Forwarded-For jó érték, de a REMOTE_ADDR az a haproxy.
- A hozzászóláshoz be kell jelentkezni
Ez a helyes működés. A REMOTE_ADDR-ben az van, ahonnan a kérés a szerveredre érkezik - ez meg a haproxy.
- A hozzászóláshoz be kell jelentkezni
Erre van az rpaf ill. most már a remoteip, de nem működik.
- A hozzászóláshoz be kell jelentkezni
ha proxy, akkor a proxy dönti el, hogy továbbítsa-e a kliens IP-címét az X-Forwarded-For-ban, vagy valami fals címet, vagy semmit.
Egyébként mire lenne jó? Ugye nem erre akarod a felhasználók azonosítását felépíteni?
- A hozzászóláshoz be kell jelentkezni
Nem azonosításra hanem logolás és a php berakja mysql-be is a könnyebb elemzés miatt.
Tcpdump-oltam a haproxy-tól még megkapja, de a webszerver már nem jó és hiába rpaf vagy remoteip, nem a kliens ip-je van a logokban ill. a mysql-ben, ez még 12.04 alatt nagyon jól működött és nem tudom eldönteni apache vagy php hiba vagy mi.
- A hozzászóláshoz be kell jelentkezni
Próbáld ki, hátha meglátod valahol elbújva:
var_dump($_SERVER);
print_r ($_SERVER);
- A hozzászóláshoz be kell jelentkezni
Próbáltam, HTTP_X_FORWARDED_FOR hozza a REMOTE_ADDR meg nem, de a 12.04-es tökéletes.
- A hozzászóláshoz be kell jelentkezni