У меня есть сервер с несколькими доменами. И трафик http (apache), и трафик http-alt (tomcat).
Если / когда я отключу сервер, я хотел бы иметь возможность перенаправлять людей на временную страницу «в процессе обслуживания», независимо от их целевого URL / порта.
Как этого добиться? Нужен ли мне tomcat, работающий на вторичном сервере, или есть способ поймать все и перенаправить каким-то методом, о котором я не знаю? Я пытался просто принудительно направить весь трафик 80/8080 на вторичный сервер, но в зависимости от URL-адреса он не разрешается, и он никогда не разрешается при попытке доступа: 8080 / что угодно. Любые идеи?
РЕДАКТИРОВАТЬ (обновить): Я успешно достиг этого улова для любого домена и любого трафика порта 80, используя _default_ vhost
, но он по-прежнему ничего не ловит на 8080, хотя я указываю:
<VirtualHost _default_:*>
DocumentRoot /var/www
ServerName host
ServerAlias *
ErrorDocument 404 /index.html
</VirtualHost>
Кто-нибудь знает, почему и как?
ИЗМЕНИТЬ (обновление 2): используя tomcat error-code
в /etc/tomcat/web.xml я добавил
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/index.html</location>
</error-page>
Теперь я могу заставить его работать для корня tomcat http://domain.com:8080 но ничего общего с 404 вроде http://domain.com:8080/nonexistentpath
Любые идеи? Спасибо
Как отмечено в моих обновлениях к вопросу и указано в комментариях выше:
Для обработки порта 404 Apache (порт 80) я использовал следующее в конфигурации Apache:
<VirtualHost _default_:*>
DocumentRoot /var/www
ServerName host
ServerAlias *
ErrorDocument 404 /index.html
</VirtualHost>
Чтобы обработать их в Tomcat (8080, в моем случае), в /etc/tomcat/web.xml
я добавил:
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
Единственная другая проблема, с которой я столкнулся, заключается в том, что tomcat 404 не отображается в IE. В итоге мне понадобилось добавить на страницу дополнительные данные в виде комментариев, чтобы добавить веса к файлу, чтобы IE отображал мою настраиваемую страницу вместо своей собственной. Как глупо.
Надеюсь, это поможет кому-то другому в будущем.