Apache 2.4:IP範囲ごとにリバースプロキシへのアクセスを制限し、他のすべてのホストからの要求をリダイレクトします。

Apache 2.4:IP範囲ごとにリバースプロキシへのアクセスを制限し、他のすべてのホストからの要求をリダイレクトします。

バックエンドWebサイトのページを提供するフロントエンドプロキシサーバーがあります(どちらもApache 2.4を実行)。

# Apache config snippet from frontend server
SSLProxyEngine on
ProxyPass "/blah"  "https://backend.invalid/blah"
ProxyPassReverse "/blah"  "https://backend.invalid/blah"

(つまり、次のいずれかにアクセスします。https://frontend.invalid/blah実際、バックエンドサイトでコンテンツを検索します。これは期待どおりに機能します。 )

Require ip 123.123 172.20.0.0/16バックエンドサイトでいくつかのメンテナンスタスクを実行するために、特定のIP範囲(たとえば、複数の範囲の場合など)からプロキシ(およびバックエンドサイト)へのアクセスのみを許可し、すべての要求を許可しようとしています。いいえこれらの範囲内で、これらの要求をステータスページを持つ別のサイトにリダイレクトします。

mod_rewrite私はこれがかなり複雑な構成(いつも「いくつかのコーヒーのコーヒーが必要」作業)および/またはIfandディレクティブの使用を要求すると思いますElse

誰でもこれを設定するための最良(または最も簡単な)方法を提案できますか?

答え1

あなたのユースケースに欠けていない場合は、おそらく簡単に<If>使用できます-ipmatchオペレーター, と結合Redirectガイドライン

<If "! ( %{REMOTE_ADDR} -ipmatch '172.20.0.0/16' )">
    Redirect https://other.com/...
</If>

要求するユーザーエージェントの元のIP(プロキシソースIPではない)を開く必要がある場合でも有効にします。mod_remoteip基準寸法CONN_REMOTE_ADDR代わりに変数を使用してくださいREMOTE_ADDR

(...だからミッションはコーヒーの数回だけ飲むことができるほど長いかもしれません;)

関連情報