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

Страница ошибки по умолчанию nginx перестала работать по какой-то причине

Раньше это работало:

server {
  server_name example.com;

  location / {
    proxy_pass http://localhost:8888;
    error_page 502 /502.html;
  }

  location = /502.html {
    root /var/www/example;
  }
}

Теперь внезапно этого больше нет ... Я не знаю, что изменилось?

Я получаю 404 вместо отображения /var/www/example/index.html если порт 8888 не отвечает ...

Как заставить это работать снова? Спасибо

В вашей конфигурации указано, что документ об ошибке /var/www/example/502.html. Ничто в вашей конфигурации не пытается загрузить /var/www/example/index.html в любое время и в любое время. Переименуйте файл.

Большая часть вашего контента находится на удаленном сервере. Вам необходимо обслуживать страницу с ошибкой (вместе с некоторыми ресурсами) локально. Вам нужно «особое место», отличное от любого места, обслуживаемого восходящим потоком, и разместить там все ваши локальные ресурсы. Я не могу выбрать название для этого места, так как понятия не имею, что вы обслуживаете из 8888. Но допустим /error_pages на данный момент.

server {
    server_name example.com;

    location / {
        proxy_pass http://localhost:8888;
        error_page 502 /error_pages/502.html;
    }

    location /error_pages {
        root /var/www/example;
    }
}

С приведенной выше конфигурацией вам нужно будет отредактировать 502.html и измените URL-адреса ресурсов, чтобы добавить /error_pages префикс.

Вам также потребуется переместить все файлы (502.html и его файлы ресурсов) в /var/www/example/error_pages/ подкаталог.