mod_proxy_ajp を使用して構成された apache と tomcat を持つアプリケーションがあります。以下のように httpd.conf で構成しました。
# This is to redirect any request which is coming with hostname to Login.jsp
RewriteRule ^/$ /jsp/Login.jsp [R]
#include httpd-proxy.conf
<IfModule mod_proxy_ajp.c>
Include conf/extra/httpd-proxy.conf
</IfModule>
httpd-proxy.conf には、次のプロキシ構成があります。
<Proxy *>
AddDefaultCharset Off
Order deny,allow
Allow from all
</Proxy>
ProxyPass /jsp/ ajp://localhost:8009/jsp/
ProxyPassReverse /jsp/ ajp://localhost:8009/jsp/
Tomcat の server.xml ファイルで、AJP コネクタを次のように構成しました。
<Connector port="8009" protocol="org.apache.coyote.ajp.AjpProtocol" redirectPort="8443" address="localhost"
enableLookups="true" maxThreads="500" connectionTimeout="120000" URIEncoding="UTF-8" />
ホスト名とIPアドレスでマシンにアクセスすると、リクエストは正常に機能し、Login.jspが表示されます。ただし、以下のように元のサーバー名へのエイリアスを使用して、サーバーとクライアント (ブラウザーが実行されている場所) の両方のホスト ファイルにエントリを追加すると、機能しません。
some_ip_address original_host_name alias1 #This is alias
http://alias1としてリクエストを行うと、リクエストは Login.jsp にリダイレクトされますが、ページが表示されません。ブラウザでは、URL がhttp://alias1/jsp/Login.jspとして表示されますが、ページが表示されません。apache ajp ログでは、応答コードが 200 であることを確認できます。正確にどこに問題があるのか わかりません。誰か助けてください