나는 클라이언트의 FQDN(정규화된 도메인 이름)을 확인하려는 서블릿을 설계하고 있습니다. 호스트 이름을 얻기 위해 javax.servlet.HttpServletRequest.getRemoteHost()를 사용해 보았습니다. Apache Tomcat에서 애플리케이션을 독립형 서버로 실행할 때 request.getRemoteHost()는 내가 원하는 방식으로 작동하여 클라이언트의 FQDN을 반환합니다. 그러나 Apache Httpd 서버를 프런트 엔드로 사용하고 mod_jk를 커넥터로 사용하여 애플리케이션을 실행할 때 request.getRemoteHost()는 항상 FQDN 대신 클라이언트의 IP 주소를 반환합니다.
이 문제를 해결하기 위해 다음 두 가지 구성 옵션을 시도했습니다.
- Apache Tomcat의 server.xml에서 활성화Lookups="true"를 설정했습니다.
- 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입니다.