Самый простой способ поддержать Tomcat с помощью экземпляра Apache HTTP

StackOverflow https://stackoverflow.com/questions/765284

Вопрос

У меня есть один экземпляр Tomcat 6, который часто приходится перезагружать из-за проблем с PermGen после нескольких развертываний WAR.

В производственной среде закрывать сайт явно плохая практика, оставляя посетителям только сбой соединения.Общая картина заключается в настройке отказоустойчивого кластера Tomcat из еще одного или двух экземпляров, но сейчас мне хотелось бы простого решения:

Когда Tomcat не работает, все запросы перенаправляются на HTTP-сервер Apache, на котором работает 1 простая страница типа «Сайт находится на обслуживании».

Я предполагаю, что мне нужен какой-нибудь небольшой, сверхбыстрый прокси-сервер, который будет работать перед Tomcat, подавать ему запросы и следить за его состоянием.Если он умирает, он просто отправляет эти запросы на Apache HTTP.

Идеи?

Это было полезно?

Решение

Вы можете просто использовать Apache перед установкой Tomcat.Настройте правило перенаправления прокси на вашего кота.Если это не сработает, Apache отправит сообщение «Служба 503 временно недоступна», которую вы можете настроить в качестве страницы обслуживания.

Файл приложения Apache будет выглядеть примерно так

<VirtualHost *>
    ServerName example.com
    ServerAlias *.example.com
    ServerAdmin admin@example.com

    RewriteEngine on
    RewriteRule ^/static/(.*) /some/path/for/static/files/static/$1 [L]
    RewriteRule ^(.*) http://127.0.0.1:8080$1 [P]

    ErrorLog /var/log/apache2/example/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/example/access.log combined
    ServerSignature On

    ErrorDocument 503 /static/site_down.html
</VirtualHost>

Первое правило перезаписи изменяет все файлы ниже определенного URI ( /static/ ) в каталог, из которого эти статические файлы обслуживаются напрямую без проксирования.Вы также можете использовать это для обслуживания всех статических ресурсов вашего веб-сайта, что в некоторой степени компенсирует общую (небольшую) потерю производительности из-за наличия Apache перед вашим котом.

Директива ErrorDocument изменяет обычный ответ 503 на документ site_down.html, расположенный по этому статическому пути.

Для этого вам необходимо включить mod_rewrite и mod_proxy/mod_proxy_http и включить прокси в конфигурации Apache2

<Proxy *>
        Order Deny,Allow
        Deny from all
        Allow from all
</Proxy>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top