ELB와 Cloudflare 뒤에있는 EC2에서 PHP7과 함께 Laravel 5.3을 사용하고 있는데 TrustedProxy 패키지 (https://github.com/fideloper/TrustedProxy)에 약간의 문제가 있습니다.TrustedProxy가 사용자 IP를 감지하지 못합니다.
패키지가 사용자에게 IP를 제공하지 않습니다. 신뢰할 수있는 config 파일에서
나는 (너무 ** 내가 함께 노력)이
return [
'proxies' => '*',
'headers' => [
\Illuminate\Http\Request::HEADER_CLIENT_IP => 'X_FORWARDED_FOR',
\Illuminate\Http\Request::HEADER_CLIENT_HOST => 'X_FORWARDED_HOST',
\Illuminate\Http\Request::HEADER_CLIENT_PROTO => 'X_FORWARDED_PROTO',
\Illuminate\Http\Request::HEADER_CLIENT_PORT => 'X_FORWARDED_PORT',
],
];
같은 것이
을하지만> IP를() $ 요청 - 같은 일을 할 때, $ 요청 - > getClientIp getClientIps (이 메소드는 모두 getClientIps()를 사용하고 있습니다.) 나타나는 IP는 프록시 IP입니다. 나는 $ 요청을 인쇄 할 경우
나는 볼 수
서버 가방 :
...
"HTTP_X_FORWARDED_PROTO" => "https"
"HTTP_X_FORWARDED_PORT" => "443"
"HTTP_X_FORWARDED_FOR" => "XX.XX.XX.XX" (I removed the real IP)
...
"REMOTE_ADDR" => "10.0.0.53"
헤더 가방 :
"x-forwarded-proto" => array:1 [
0 => "https"
]
"x-forwarded-port" => array:1 [
0 => "443"
]
"x-forwarded-for" => array:1 [
0 => "XX.XX.XX.XX" (I removed the real IP)
]
그러나 $ 요청 -> IP(), $ 요청 -> getClientIp 및 getClientIps가 잘못된 IP (10.0.0.53)를 반환합니다.
누구나 아이디어 나 단서가 있습니까?
감사합니다.