[Apache+Tomcat]連携している特定のバーチャルホストに対するアクセス制限

ApacheTomcatAccess

Webサイトを公開している方は、どこからアクセスが来ているか、検索ワードは何なのか、おかしなアクセスは無いか等を調べる為にアクセスログをチェックしていると思います。

ログを見ていると、中にはアクセス拒否したいクライアントが有ります。
そんなとき、Apacheでサイトを公開しているなら.htaccessファイルを作成し(Order,Allow,Deny)というアクセス制限機能を使うと便利ですが、AJPを使用してTomcat連携しているWebアプリケーションの場合は.htaccessは使えません。

                   

Tomcatで動かしているWebアプリケーションにもApacheのアクセス制限機能を使いたい場合は、以下のようにバーチャルホストの設定中に記述します。


※httpd.conf

<VirtualHost *:80>
  ServerAdmin webmaster@example.com
  ServerName example.com
  <IfModule mod_proxy_ajp.c>
    <Location />
      SetEnvIf User-Agent "アクセス拒否UA" deny
      Order allow,deny
      Allow from all
      Deny from env=deny
      ProxyPass ajp://localhost:8009/
    </Location>
  </IfModule>
</VirtualHost>

このようにajpのプロキシ設定中に.htaccessで通常記述するように書けばOKです。

上記では、8~11行に特定のUA(ユーザエージェント、User-Agent)に対するアクセス制限の記述を追加しています。
example.comのアクセスをApacheが受け取ると、通常はバーチャルホストの設定でTomcatへajp連携されますが、連携前にApache側で、User-Agent “アクセス拒否UA”であればアクセス拒否してくれるようになります。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>