@E_gorka
Сисадмин

Nginx, как не отдавать error_page отделу разработки?

Чтобы пользователи видели красивые сообщения об ошибках, настроен nginx :
error_page 404 /var/www/page404.html;
Сейчас возникла задача отдавать эту страницу только пользователям, а отделу разработки видеть какую реальную ошибку выдал сервер.
Начал ваять такой код,
geo $it_networks
{
default no;
192.168.5.0/24 yes;
}
server {
        listen       80;
...
if ($it_networks = no) {
error_page 404 /var/www/page404.html;
}

но наткнулся на ошибку.
"error_page" directive is not allowed here in /etc/nginx/sites-enabled/superpupersite.cfg


Можно вынести error_page в отдельный location, но тогда не понятно как в него перенаправлять.
if ($it_networks = no) {
   return @errors; # не работает
}
location @errors {
   error_page 404 /var/www/page404.html;
}

Прошу совета.
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
  • dima9595
    @dima9595
    Начинающий разработчик PHP
    Есть тут один вариантик, который будет зависеть не от web-сервера, а от самого приложения. Допустим, ваше приложение работает с авторизованными пользователями, то тогда вашему приложению нужно узнать (права, роли, или просто по какому то другому приципу) является ли авторизованный пользователь тем, кому можно показывать системные ошибки (например, администратор). И если имеет право увидеть, то показываем, иначе - нет.
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы