Назад | Перейти на главную страницу

NginX - разрешить - настраиваемая страница ошибок

Это довольно интересно, ребята! У меня есть следующий код в конфигурации NginX одного из моих веб-приложений:

    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;
    }

Как видите, я хочу запретить все подключения к интерфейсу входа в систему, кроме одного IP-адреса. Это работает как шарм и показывает стандартное сообщение об ошибке NginX 403, когда я пытаюсь подключиться с другого IP-адреса. А теперь самое интересное. Если я добавлю настраиваемую строку сообщения об ошибке, ВСЕ ВАРИАНТЫ РАЗРЕШЕНИЯ / ОТКЛОНЕНИЯ ИГНОРИРУЮТСЯ!

Я добавил:

    error_page 403 /40x.html;

OFC Я создал специальный файл для /usr/shar/nginx/html и файл существует. В NginX нет сообщения об ошибке, но если я добавлю верхнюю строку в конфигурацию веб-приложения (или в стандартный nginx.conf, не имеет значения) правила, которые я установил для разрешенных IP-адресов и deny all полностью игнорируется. Что дает? Кто-нибудь знает, как предоставить пользователям настраиваемую страницу ошибок NginX и сохранить параметры разрешения и запрета?

Хорошо, решение заключалось в том, чтобы создать не только настраиваемую страницу с ошибкой, но и местоположение страницы с ошибкой. Так что мне просто пришлось добавить:

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

И вуаль ... Блин, NginX! Почему ты так много раз меня разочаровываешь? : D