request.getRemoteHost()는 FQDN 대신 IP 주소를 반환합니다.

request.getRemoteHost()는 FQDN 대신 IP 주소를 반환합니다.

나는 클라이언트의 FQDN(정규화된 도메인 이름)을 확인하려는 서블릿을 설계하고 있습니다. 호스트 이름을 얻기 위해 javax.servlet.HttpServletRequest.getRemoteHost()를 사용해 보았습니다. Apache Tomcat에서 애플리케이션을 독립형 서버로 실행할 때 request.getRemoteHost()는 내가 원하는 방식으로 작동하여 클라이언트의 FQDN을 반환합니다. 그러나 Apache Httpd 서버를 프런트 엔드로 사용하고 mod_jk를 커넥터로 사용하여 애플리케이션을 실행할 때 request.getRemoteHost()는 항상 FQDN 대신 클라이언트의 IP 주소를 반환합니다.

이 문제를 해결하기 위해 다음 두 가지 구성 옵션을 시도했습니다.

  1. Apache Tomcat의 server.xml에서 활성화Lookups="true"를 설정했습니다.
  2. Apache Httpd의 httpd.conf에서 HostnameLookups를 On으로 설정했습니다.

request.getRemoteHost()는 여전히 FQDN 대신 클라이언트의 IP 주소를 반환합니다.

Apache Httpd와 함께 Apache Tomcat을 실행할 때 Apache Tomcat 런타임과 마찬가지로 내 서블릿의 request.getRemoteHost() 메서드가 클라이언트의 FQDN을 반환하도록 허용하는 구성 옵션이 있습니까?

내 환경은 Apache Httpd 서버 2.4.6 및 Apache Tomcat 8.5가 설치된 RHEL 7.5입니다.

관련 정보