【APサーバ】Apache2とTomcat連携

Apache2とTomcatを連携させて
ポート番号を指定せずに画面表示出来るように設定します。

バーチャルホストの設定ファイルを変更します。

vi /etc/apache2/sites-available/default
<VirtualHost *:80>
    ~略~
    <Directory /var/www/>
        ~略~
    </Directory>
# 上記のすぐ下に下記内容を追加。(Directoryではなく、Locationです)
    <Location /examples/servlets/>
        ProxyPass ajp://localhost:8009/examples/servlets/
        allow from all
    </Location>

連携モジュールを有効化します。

a2enmod proxy_ajp
Considering dependency proxy for proxy_ajp:
Enabling module proxy.
Enabling module proxy_ajp.
To activate the new configuration, you need to run:
  service apache2 restart

Apache2を再起動する。

service apache2 restart

Tomcatの設定から8080ポートの設定をコメントアウトし、
8009ポートの設定がコメントアウトされていないことを確認する。

vi /tomcat/apache-tomcat-7.0.55/conf/server.xml
# 下記内容を変更する。(コメントアウト)
<Connector port="8080" protocol="HTTP/1.1" ~略~
↓
<!-- <Connector port="8080" protocol="HTTP/1.1" ~略~ -->

# 下記内容がコメントアウトされていないことを確認する。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

下記URLにアクセスする。

http://z-area.net/examples/servlets/

Servletのサンプル画面が出てくれば成功。

http://z-area.net:8080/examples/servlets/

接続失敗すれば成功。

私の環境ではApahce2とTomcatともに再起動してもポート8080で表示できてしまったので、
サーバをrebootして、再度Apache2、Tomcatを起動したらポート8080で接続不可になっていました。

簡易ファイアウォールでポート8080を閉じる。

ufw delete allow 8080
Rule deleted
ufw status
ToActionFrom
20LIMITAnywhere
21LIMITAnywhere
22LIMITAnywhere
80ALLOWAnywhere
443ALLOWAnywhere