プロキシの背後にあるApache:特定のIPをバイパスするAuth Basic

プロキシの背後にあるApache:特定のIPをバイパスするAuth Basic

一部のIPに対して基本認証をバイパスする必要があり、Apacheは2.4であり、haproxyの背後にあるため、これをドキュメントルートセクションに挿入しました。

<Directory /path/to/webroot>
    AuthUserFile /etc/apache2/.htpasswd
    AuthType Basic
    AuthName "Restricted Content"
    <Limit GET>
        Require valid-user
    </Limit>
    Require ip xxx.xxx.xxx.xxx
    Satisfy any
</Directory>

しかし、動作しません。 Apacheはプロキシの背後にあります。 Apacheに到達するIPはクライアントではなくプロキシなので、機能しない可能性があります。

ベストアンサー1

有効化と設定mod_remoteip。プロキシは、X-Forwarded-ForHTTP要求のようにヘッダーに元のリモートIPアドレスを設定します。RemoteIpHeader外部の指令に渡してください<Directory>

%amod_remoteipが正しく機能している場合は、inを使用してプロキシが転送した元のリモートアドレスを確認できますLogFormat。これを最初に確認する必要があります。

Apache 2.4Satisfyディレクティブは次のとおりです。廃止.そして不要な内容を追加して承認条件を複雑にしないことをお勧めします<Limit>

次の設定を試してください。

RemoteIPHeader X-Forwarded-For

<Directory /path/to/webroot>
    AuthUserFile /etc/apache2/.htpasswd
    AuthType Basic
    AuthName "Restricted Content"
    Require valid-user
    Require ip xxx.xxx.xxx.xxx
</Directory>

おすすめ記事