Apache Mod_proxyのURLを除外する方法は?


23

ロードバランサーとしてmod_proxyモジュールを使用して構成されたフロントエンドとしての2つのApacheサーバーとバックエンドとしての4つのTomcatサーバーがあります。次に、mod_proxyロードバランサーから単一のTomcat URLを除外します。除外する方法やルールはありますか?

プロキシバランサーの設定:

<Proxy balancer://backend-cluster1>
   BalancerMember http://10.0.0.1:8080 loadfactor=1 route=test1 retry=10
   BalancerMember http://10.0.0.2:8080 loadfactor=1 route=test2 retry=10
</Proxy>

回答:


38

サンプルが欠落している完全なProxyPassステートメントの前に感嘆符(!)を付けてmod_proxyからパスを除外すると、次のようになりProxyPass /path balancer://backend-cluster1ます。したがって、パスを除外するには、次を追加します。

ProxyPass /my/excluded/path !

ProxyPass /my balancer://backend-cluster1

ただし、proxyBalancerの背後にアクセスするURL
Mughil

fuzzyfeltに感謝します。プロキシバランサーを構成した場合、URLを除外する方法を尋ねています。私は質問にプロキシ設定を含めました
ムガール

1
更新された回答を参照してください。proxypassへのパスを定義する前に、除外を追加します。
アラステアマコーマック

2
ProxyPassを使用してチャットサーバーを表示する場合、LetsEncryptを仮想ホストのデフォルトの.well-knownフォルダーの場所に許可するために、この回答を使用するとうまくいきました。他のディレクティブの前に追加します:ProxyPass /.well-known!
ファルケン教授

2

Alastair McCormackの答えに加えて:を使用する場合<Location>は、前ではなく下に例外を置く必要があります。

<Location /my/>
    ProxyPass balancer://backend-cluster1
</Location>

<Location /my/excluded/path/>
    ProxyPass !
</Location>

-2

ユーザーが除外したいURLにアクセスしようとすると、404エラーを与えるプロキシディレクティブの上に書き換えを置くことができます。rewrite_moduleを有効にする必要があります。

<Location ~ ^/urltoblock($|/)>
   RewriteEngine On 
   RewriteRule .* - [L,R=404]
</Location>

彼は404エラーを望んでいることについて何も言わなかった。
user207421 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.