пользовательская страница ошибок apache tomcat 503

У меня есть apache2 и tomcat6 (не установлены из репозитория apt, загружены и установлены вручную), работающие на порту 80 с настройкой mod_jk. Доступ к страницам сервлета jsp осуществляется путем указания браузеру http://myapp.mydomain.com/ (виртуальный хостинг выполняется в tomcat (server .xml) и в apache). Я пытаюсь перенаправить страницу ошибки 503 tomcat на страницу пользовательской ошибки, когда tomcat не работает (pkill -9 java или /etc/init.d/tomcat stop) во время развертывания.

Корень документа моего apache - / var / www /, поэтому я помещаю ниже запись в файле apache2.conf

ErrorDocument 503 maintenance.html и создал файл maintenance.html в / var / www. Когда я тестировал остановку tomcat, и я перенаправил страницу на maintenance.html без изменения URL-адреса, но фактическая страница не отображается, вместо этого в браузере отображается имя файла maintenance.html. Может ли кто-нибудь помочь мне правильно настроить apache, который перенаправляет на правильную страницу maintenance.html, когда tomcat не работает?


person user465465    schedule 12.01.2011    source источник


Ответы (2)


Из документации apache,

URLs can begin with a slash (/) for local web-paths (relative to the 
DocumentRoot), or be a full URL which the client can resolve.

Думаю, ErrorDocument 503 /maintenance.html должно работать.

person Raghuram    schedule 12.01.2011
comment
В файле /etc/apache2/sites-enabled/000-defaults DocumentRoot - это /var/www/ вместо /var/www. Если я использую /maintenance.html вместо maintenance.html, я получу ту же страницу с Server Temporarly Unavailable ошибкой. - person user465465; 12.01.2011
comment
Как работает server-ip / maintenance.html, и я могу добавить ErrorDocument 503 http://server-ip/maintenance.html в файл конфигурации apache, и это работает но страница остается на странице обслуживания, и пользователь снова должен указать URL-адрес на myapp.mydomain.com после того, как кот встал. - person user465465; 12.01.2011
comment
Из документации apache (http://httpd.apache.org/docs/2.0/mod/core.html#documentroot), DocumentRoot следует указывать без косой черты в конце. Удачи тебе! - person Raghuram; 12.01.2011
comment
Maintenance.html может содержать интерактивную ссылку на ваше приложение или периодическое мета-обновление для него. - person Raghuram; 12.01.2011
comment
Это обычная html-программа, и ничего подобного нет, поскольку она создана мной. - person user465465; 12.01.2011

Если вы используете Apache с коннекторами Tomcat, решение немного сложнее, чем простое добавление директивы ErrorDocument. Вы должны явно указать Apache, чтобы он НЕ заглядывал в смонтированный соединитель в поисках вашего файла /main maintenance.html; вместо этого ему нужно искать его локально.

Я опубликовал свое рабочее решение этой проблемы здесь

person Andrij    schedule 06.06.2014