一部の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-For
HTTP要求のようにヘッダーに元のリモートIPアドレスを設定します。RemoteIpHeader
外部の指令に渡してください<Directory>
。
%a
mod_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>