web-dev-qa-db-ja.com

NginX-許可-カスタムエラーページ

これはかなり面白い人です! 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エラーページを提供し、許可と拒否のオプションを維持する方法を知っていますか?

2
Bert

解決策は、カスタムエラーページオプションだけでなく、エラーページの場所も作成することでした。だから私は追加する必要がありました:

    error_page 403 /40x.html;
            location = /40x.html {
            root    /usr/share/nginx/html;
            allow   all;
    }

そしてボイル... NginXくそー!なぜ私を何度も失望させるのですか? :D

1
Bert