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アドレスを返します。

この問題を解決するために、次の2つの設定オプションを試しました。

  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 Server 2.4.6とApache Tomcat 8.5がインストールされているRHEL 7.5です。

ベストアンサー1

おすすめ記事