これまでのところ、私が試したことは何も機能していないようです。 Windows 7マシンでApache 2.4.7を実行しています。
セットアップは次のとおりです。
サーバーIP、ポート80に着信するすべてのトラフィックをJava localhost:5000
で実行されているアプリケーションにリダイレクトしています。
これらすべてをhttpd-vhosts.conf
ファイルで実行するコードは次のとおりです。
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName demo.website.com
ServerAlias website.com
ProxyPass / http://localhost:5000/
ProxyPassReverse / http://localhost:5000/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
問題は、特定の外部IPアドレスからのトラフィックをどのようにdeny
するかです。
ポート80でのリクエストは、Javaアプリケーションにリダイレクトされ、ウェブコンテンツを含むxamppフォルダにリダイレクトされないため、.htaccess
を使用できないようです。
また、以下のコードも機能しません。
<Proxy *>
order allow,deny
deny from 193.37.XXX.XX
allow from all
</Proxy>
他にどのようなオプションがありますか?
助言がありますか?
編集:
私が得た応答の後、私はサーバーで悪用可能なギャップを開いてプロキシを完全に間違って逆にしているようです。提供された回答に基づいて、最初のコードを変更しました。
ポート443に同様の安全でないコードを使用していて、新しい変更後にApacheを開始できないため、新しい質問 [〜#〜]こちら[〜#〜] を投稿しました。
@MichaelHamptonがすでにコメントしたように:次の設定をすぐに削除します:
<Proxy *>
order allow,deny
deny from 193.37.XXX.XX
allow from all
</Proxy>
リバースプロキシには必要ありませんが、代わりにforwardproxy、ほとんど誰にでもオープンで、サーバーが悪用される可能性があります。 (幸いにもあなたはまだ ProxyRequests off
も使用しています)
ところで、フォワードプロキシが必要な場合は、Apache httpdではなく、より具体的な製品を使用してください。
.htaccessを使用できないようです...
私見あなたはすでに.htaccess
ファイルを作成するつもりで間違った方向に向かっています。これは manual on .htaccess ファイルから引用された私のペットのピーチです:
Httpdメインサーバーの設定にアクセスできる場合は、_
.htaccess
ファイルの使用を完全に回避する必要がありますファイル。.htaccess
ファイルを使用すると、Apache httpサーバーの速度が低下します。.htaccess
ファイルに含めることができるディレクティブは、同じ効果を持つため、メインのApache構成ファイルのDirectory
ブロックで設定することをお勧めします。パフォーマンスが向上します)。
ただし、この場合に.htaccessが機能しないのは、ローカルファイルシステムのリソースにディレクトリから設定を適用し、リバースプロキシを使用して、コンテンツがApache httpdによって他の場所から取得されるためです。
リバースプロキシURLに追加のアクセス制御とIPアドレスホワイト/ブラックリストを適用する方法としての、実際の問題の解決策:ProxyPass
ディレクティブと追加のディレクティブを<Location>
ブロックに配置します。構成(これも Apache 2.4以降 は、最高のパフォーマンスを提供する構成構文です) Require
ディレクティブでIPアドレス制限に追加しますその場所に:
<VirtualHost *:80>
ServerName demo.website.com
ServerAlias website.com
<Location />
<RequireAll>
# Block IP-addresses from the 193.37.0.0/16 and 10.9.8.0/24 networks
Require not ip 193.37 10.9.8
# Allow all other IP's
Require all granted
</RequireAll>
ProxyPass http://localhost:5000/
ProxyPassReverse http://localhost:5000/
</Location>
</VirtualHost>