언제나 그렇듯이 같은 업계 있는 분들이 삽질을 하실때 두어삽 이라도 도움이 되고자 남겨본다...

Apache + Tomcat 연동이랑 IPv4랑 무슨 상관인가 싶겠지만... 아주 상관이 없는건 아니다...

얼마전에 Apache + Tomcat(버전은 9.x) 연동을 해야 되는 경우가 생겨서 연동을 진행 하게 됬는데...

worker설정하고, virtualhost도 설정해서 새로 추가한 Tomcat에 연결을 해줬다...

아니...그른데~ 그른데~ 안된다...ㅡㅡ;;; 불길한 예감은 왜 항상 틀리지 않는 것인가...;;;

삽신의 강림이 느껴진다...

분명 worker 설정도 잘 되었고, virtualhost도 문제 없이 잘 되었고..AJP포트도 중복 없이 맞춰줬고...

당췌 원인을 찾을수 없었다...그렇게 서너시간 삽신과 대치하고 있었는데...

문득 Apache와 연동전에 사용자 로그인 로그 수집을 하면서 IP를 수집을 하는데 IPv6만 나와서 IPv4를 수집하기 위해 톰켓 환경변수에 -Djava.net.preferIPv4Stack=true를 추가 해줬던 기억이 났다...설마 설마 하면서 해당 부분은 주석처리 하고 다시 실행을 해봤더니...된다...ㅡㅡ;;;;

아놔~;;;;;;;;

그럼...이제 여기서 다시 고민을 했다 그럼 ip수집을 IPv6로 해야 되나? 싶은 찰나의 순간!! tomcat AJP설정 부분에 ip 머시기머시기를 봤던 기억이 나서 server.xml을 열어서 AJP 설정 부분을 봤다.

<!--  Define an AJP 1.3 Connector on port 8009  -->
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />

 

ajp 설정 검색을 좀 해봤더니 address="::1" 이부분을 address="0.0.0.0" 이렇게 IPv4형식으로 바꿔주면 될거 같아서 변경후,
아까 톰켓 환경설정에 주석으로 막아놨던 부분을 다시 풀고 다시 해봤더니 그제서야 정상 동작을 했다...ㅡㅡ;;;

껄껄~ ㅡㅡ;;;

 

결론:

Apache + 톰켓 연동시 IPv4 수집을 하려면 환경설정에 -Djava.net.preferIPv4Stack=true 값을 추가 하고, 톰켓 AJP 설정에서 address="::1" 를  address="0.0.0.0"로 변경 해야 된다. 

-삽질 끝 -

ps. 삽신!! 우리 앞으로 보는일 없었으면 좋겠다..

복사했습니다!