제목 | 아파치 x-foward 세팅을 했는데 session ip가 로드밸런서로 잡힙니다.. | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 브링잇온0652 | 작성시각 | 2020/03/10 11:46:44 |
|
|||
세션 ip에 로드밸런서 ip가 잡혀 웅파님이 보내주신 부분 토대로 서치해서 수정해봤습니다 첨부한 사진처럼 로그포맷 %h 부분을 x-forwarded for 로 변경하고 나니 찍히는 아이피가 로드밸런서가 아닌 접속하는 본래 아이피로 잘 변경되었습니다. config파일 맨 하단에 있는 proxy_ips는 아래와 같이 수정했습니다. 잘 될줄 알았는데 여전히 db에 저장되는 session ip는.. 로드밸런서로 잡히네요.. $config['proxy_ips'] = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : '';
[세션] $config['sess_driver'] = 'database'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_expiration'] = 3600; //7200 $config['sess_save_path'] = NULL; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE;
음... 뭔가 놓치는 부분이 있는걸까요? 어렵습니다.. |
|||
첨부파일 |
tt.png (33.7 KB) |
||
다음글 | 검색어 유지 문의드립니다!! (4) | ||
이전글 | URL 문의 드립니다!! (2) | ||
변종원(웅파)
/
2020/03/10 12:48:04 /
추천
1
|
브링잇온0652
/
2020/03/10 15:48:42 /
추천
0
답변 감사합니다! 말씀해주신 대로 찍어보니 로드밸런서 ip로 잡힙니다.. 이런 경우 $this->input->ip_address()의 주소를 본래 아이피주소로 변경하려면 어떻게 해야 할까요?? |
한대승(불의회상)
/
2020/03/10 19:24:34 /
추천
1
application/config/config.php 파일을 오픈 하신후 $config['proxy_ips'] = ''; 위 항목을 찾으신후 값에 로드밸런서 IP를 기록해 주세요. |
브링잇온0652
/
2020/03/11 09:38:34 /
추천
0
불의회상님 답변감사합니다! $config['proxy_ips'] 안에 로드밸런서 ip를 삽입하고 나니 $this->input->ip_address() 에 본래 아이피가 찍혔습니다. 그런데도.. db 테이블에는 로드밸런서 ip가 자동삽입되네요.. 어렵네요.. 추가적으로 확인할 부분이 있을까요?? 혹시 몰라서 $config['sess_match_ip'] = TRUE 해봤는데 동일합니다.. |
한대승(불의회상)
/
2020/03/11 10:31:06 /
추천
1
@브링잇온0652 DB 세션 버그로 보입니다. 코드를 살펴보니 $this->input->ip_address()로 ip를 가져 오지 않고 $_SERVER['REMOTE_ADDR'] 로 가져오고 있네요. 세션 드라이버를 직접 수정해야 할듯 합니다. system/libraries/Session/drivers/Session_database_driver.php 파일을 살펴보세요. |
브링잇온0652
/
2020/03/11 11:14:52 /
추천
0
답변 감사합니다! 확인해보니 Session_database_driver.php 파일 안에 ip 관련된 부분이 모두 $_SERVER['REMOTE_ADDR'] 로 되어 있네요.. 하.. 정말 감사합니다 $_SERVER['REMOVE_ADDR'] => $_SERVER['HTTP_X_FORWARDED_FOR'] 로 교체하니 드디어.. session db에 올바른 사용자 ip가 잡힙니다. 바쁘실텐데 답변해주신 두 분께 정말 감사드립니다!
|
세션도 아래 함수를 이용해서 아이피를 가져옵니다.
아래 함수가 제대로 나온다면 세션에서도 작동되어야 정상입니다.