Как отобразить пользовательскую страницу с ошибкой, когда приложение Cloud dry остановлено? - PullRequest
0 голосов
/ 23 апреля 2020

Как отобразить пользовательскую страницу с ошибкой, если основание облака dry Экземпляр приложения остановлен? Я не хочу отображать страницу ошибки по умолчанию (приложение 404 недоступно). Есть ли способ реализовать это поведение, используя маршрутизацию или используя CF Java API?

1 Ответ

2 голосов
/ 24 апреля 2020

Причина, по которой вы видите 404, заключается в том, что когда ваше приложение остановлено, ничто не отображается на маршрутах вашего приложения. Это означает, что Gorouter не имеет записей в своей таблице маршрутизации для маршрутов, используемых вашим приложением, поэтому он вернет 404 (то есть, этот маршрут не существует).

Если вы хотите получить пользовательское сообщение отображается для вашего маршрута, когда приложение не используется, на ум приходит пара вариантов.

  1. Развертывание небольшого приложения stati c, возможно, с использованием staticfile_buildpack или nginx_buildpack, которое отображает ваше пользовательское сообщение.

    Теперь, прежде чем остановить основное приложение, поменяйте его местами с небольшим приложением stati c (cf unmap-route / cf map-route). Маршруты все еще будут присутствовать, поэтому Gorouter не вернет 404, вместо этого запросы будут go в ваше небольшое приложение stati c, которое может вернуть все, что захочет.

  2. Развертывание небольшое приложение stati c, возможно, использующее staticfile_buildpack или nginx_buildpack, которое отображает ваше пользовательское сообщение.

    Создайте маршрутный символ и сопоставьте его с небольшим приложением stati c. В этом случае вам не нужно распаковывать / отображать маршрут к вашему маленькому приложению stati c.

    Вместо этого вы сопоставляете маршрутный символ, например *.example.com, с вашим небольшим приложением stati c. Затем вы сопоставляете свои обычные маршруты, такие как www.example.com или my-cool-app.example.com, с вашим реальным приложением. Когда фактическое приложение запущено и работает, его маршруты более точные c, поэтому Gorouter отправит traffi c этому приложению. Когда вы останавливаете свое основное приложение, маршруты удаляются из таблицы маршрутизации Gorouter, поэтому любые поступающие запросы будут соответствовать подстановочному маршруту и ​​go вашему маленькому приложению c.

...