バックエンド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
私はこれがかなり複雑な構成(いつも「いくつかのコーヒーのコーヒーが必要」作業)および/またはIf
andディレクティブの使用を要求すると思います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
。
(...だからミッションはコーヒーの数回だけ飲むことができるほど長いかもしれません;)