同じapacheサーバー上にいくつかの名前のバーチャルホストがありますが、そのうちの1つのバーチャルホストに対して、特定のIPアドレスだけがアクセスできるようにする必要があります。
これを行う最良の方法を教えてください。mod_authz_hostsモジュールを見ましたが、バーチャルホストの中でそれを行うことはできないようです。
mod_authz_hostディレクティブは
または
ブロックの中に置く必要があるが、私はApache 2.2のために前者を
<VirtualHost *:8080>
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
...
</VirtualHost>
参照: https://askubuntu.com/questions/262981/how-to-install-mod-authz-host-in-apache
Apache 2.4 では、Require IP ディレクティブ を使います。つまり、192.168.0.0/24 ネットワーク (192.168.0.0 から 192.168.0.255 までの範囲) からのマシンだけを許可するには
<VirtualHost *:80>
<Location />
Require ip 192.168.0.0/24
</Location>
...
</VirtualHost>
また、localhost マシンにだけアクセスさせたい場合は、特別な Require local directive があります。
以下の条件のいずれかが真であれば、ローカルプロバイダはサーバへのアクセスを許可します:
クライアントのアドレスが127.0.0.0/8に一致する。 クライアントのアドレスが::1である。 クライアントとサーバーのアドレスが同じである。
これは、ローカルホストから発信された接続をマッチさせる便利な方法です:
<VirtualHost *:80>
<Location />
Require local
</Location>
...
</VirtualHost>
Apache 2.4では、承認構成の構文が変更されており、「注文」、「拒否」、「許可」ディレクティブは使用しなくなりました。
これを行う新しい方法は次のとおりです。
<VirtualHost *:8080>
<Location />
Require ip 192.168.1.0
</Location>
...
</VirtualHost>
新しい構文を使用するその他の例は、Apacheのドキュメントにあります:2.2から2.4にアップグレード。