これはかなり面白い人です! WebアプリケーションのNginX構成の1つに次のコードがあります。
location /login {
#access_log off;
proxy_pass https://public;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $Host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-SSL-Client-Verify $ssl_client_verify;
proxy_set_header X-Client-S-DN $ssl_client_s_dn;
allow 10.0.0.31;
deny all;
}
ご覧のとおり、1つのIPアドレスを除いて、ログインインターフェイスへのすべての接続を拒否します。これはチャームのように機能し、別のIPから接続しようとすると、標準のNginX 403エラーメッセージが表示されます。今キッカーが来ます。カスタムエラーメッセージ行を追加すると、オプション全体の許可/拒否オプションIS無視されます!
追加した:
error_page 403 /40x.html;
OFC /usr/shar/nginx/html
へのカスタムファイルを作成し、そのファイルが存在します。 NginXにはエラーメッセージはありませんが、Webアプリケーション構成(または標準のnginx.confに重要ではない)に上の行を追加すると、許可されたIPとdeny all
に設定したルールが無視されます完全に。何ができますか?誰もがユーザーにカスタムNginXエラーページを提供し、許可と拒否のオプションを維持する方法を知っていますか?
解決策は、カスタムエラーページオプションだけでなく、エラーページの場所も作成することでした。だから私は追加する必要がありました:
error_page 403 /40x.html;
location = /40x.html {
root /usr/share/nginx/html;
allow all;
}
そしてボイル... NginXくそー!なぜ私を何度も失望させるのですか? :D