Tomcat へのリクエストを転送するように apache を設定しました。以下は私の構成です。
<VirtualHost *:80>
ServerName ***
ServerAlias ***
ServerAlias ***
RewriteEngine on
RewriteCond %{HTTP_HOST} =***
RewriteRule (.*) https://***/ [R]
RewriteCond %{HTTP_HOST} =***
RewriteRule (.*) https://***/ [R]
RewriteCond %{HTTP_HOST} =***
RewriteRule (.*) https://***/ [R]
</VirtualHost>
<VirtualHost *:443>
ServerName ***
ServerAlias ***
ServerAlias ***
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/***.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/***.key
SSLCACertificateFile /etc/pki/tls/certs/***.crt
</VirtualHost>
Apache ログに次のエラーが表示されます
[Sun Feb 26 23:28:28 2012] [error] (111)Connection refused: proxy: AJP: attempt to connect to 127.0.0.1:8009 (localhost) failed
[Sun Feb 26 23:28:28 2012] [error] ap_proxy_connect_backend disabling worker for (localhost)
[Sun Feb 26 23:28:28 2012] [error] proxy: AJP: failed to make connection to backend: localhost
[Sun Feb 26 23:28:29 2012] [error] proxy: AJP: disabled connection for (localhost)
[Sun Feb 26 23:28:29 2012] [error] proxy: AJP: disabled connection for (localhost)
しばらくは正しく動作しますが、突然次のエラーが発生します
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
netstat -antup | grep 8009
コマンドを試したところ、次の結果が得られました
tcp 1 0 ::1:40293 ::1:8009 CLOSE_WAIT 32434/httpd
tcp 1 0 ::1:40288 ::1:8009 CLOSE_WAIT 32430/httpd
tcp 1 0 ::1:40289 ::1:8009 CLOSE_WAIT 32429/httpd
tcp 1 0 ::1:40294 ::1:8009 CLOSE_WAIT 32622/httpd
tcp 1 0 ::1:40292 ::1:8009 CLOSE_WAIT 32435/httpd
tcp 1 0 ::1:40290 ::1:8009 CLOSE_WAIT 32436/httpd
tcp 1 0 ::1:40287 ::1:8009 CLOSE_WAIT 32433/httpd
問題がどこにあるのかわかりません。それはapacheの設定なのか、Tomcatの設定なのか、それともコーディングの問題なのか...設定の問題だと思います...助けてください..