У меня apache2 и tomcat6 работают на порту 80 с настройкой mod_jk на серверах ubutnu. Мне пришлось настроить документ об ошибке 503 ErrorDocument 503 /maintenance.html
в конфигурации apache, и каким-то образом мне удалось заставить его работать, а страница с ошибкой является сервером apache, когда tomcat остановлен. Разработчики создали красивую страницу с ошибкой (html-страницу, которая вызывает css и jpg), и меня просят, чтобы эта страница обслуживалась apache, когда tomcat не работает. Когда я попробовал с JkUnMount /*.css
на виртуальном хостинге фактические jsp-страницы tomcat не работали должным образом (потеряли формат), поскольку приложения tomcat используют jsp, css, js, jpg и так далее. Я пытаюсь получить .css и .jpg, обслуживаемые как apache, так и tomcat, так что, когда tomcat не работает, я получаю css и jpg serverd от apache, и подается правильный документ об ошибке. У кого-нибудь есть техника?
Вот моя конфигурация apache2:
vim /etc/apache2/apache2.conf
Alias / /var/www/
ErrorDocument 503 /maintenance.html
ErrorDocument 404 /maintenance.html
JkMount / myworker
JkMount /* myworker
JkMount /*.jsp myworker
JkUnMount /*.html myworker
<VirtualHost *:80>
ServerName station1.mydomain.com
DocumentRoot /usr/share/tomcat/webapps/myapps1
JkMount /* myworker
JkUnMount /*.html myworker
</VirtualHost>
<VirtualHost *:80>
ServerName station2.mydomain.com
DocumentRoot /usr/share/tomcat/webapps/myapps2
JkMount /* myworker
JkMount /*.html myworker
</VirtualHost>
Просто то, что я пытаюсь сделать, - css и jpg должны обслуживаться apache, когда tomcat остановлен, а когда tomcat запущен, он должен обслуживаться tomcat, а не apache.
Если ваша страница обслуживания не слишком сложна, я бы предложил встроить таблицы стилей в документ. Таким образом, вам не придется беспокоиться о сложном наборе правил, как вы упомянули выше, и вы по-прежнему сможете обслуживать хорошо оформленную страницу обслуживания. Конечно, это не обязательно решит проблему с изображениями.
Поместите все свои пользовательские ошибки в подкаталог, а затем используйте переменную среды no-jk, чтобы обойти mod_jk для этого подкаталога, например:
SetEnvIfRequest_URI "/errors/*" no-jk
JkMount / myworker
JkMount /* myworker
JkMount /*.jsp myworker
Тогда вам не нужно беспокоиться о директивах JkUnMount.
Не могли бы вы также быть немного умнее со своими JkMounts. Итак (удалили несколько строк для ясности): -
Alias / /var/www/
ErrorDocument 503 /maintenance/maintenance.html
JkMount / myworker
JkMount /* myworker
JkUnmount /maintenance/* myworker
<VirtualHost *:80>
ServerName station1.mydomain.com
DocumentRoot /usr/share/tomcat/webapps/myapps1
JkMount /* myworker
JkUnmount /maintenance/* myworker
</VirtualHost>
Затем вы можете статически ссылаться на общие css и jpg из папки mainentance.