Назад | Перейти на главную страницу

вопрос балансировки нагрузки tomcat

У меня есть cpanel VPS в одном центре обработки данных (linode), где у меня есть несколько учетных записей клиентов, я хочу сбалансировать нагрузки, используя 2 дополнительных VPS в том же центре обработки данных, подключенных к частным IP-адресам.

Я думал установить это для балансировки нагрузок:

VPS 1: Cpanel, почтовый сервер, Apache (прокси). Получить запросы, публичный IP.
VPS 2: MySQL.
VPS 3: Tomcat.

Сейчас мой приоритет - установка VPS 3.

Архитектура Cpanel загружает модули Java через загрузку apache, включая в определение виртуального хоста mod_jk, я думал изменить сервлет на VPS Tomcat и изменить его местоположение на что-то вроде:

DocumentRoot IP_OF_VPS:/home/didactac/public_html

Как бы то ни было, я не уверен, что это будет вок!

Вот виртуальный хост в apache:

<VirtualHost 173.230.130.64:80>
    ServerName danielakosanstore.com
    ServerAlias www.danielakosanstore.com
    DocumentRoot /home/danielak/public_html
    ServerAdmin webmaster@danielakosanstore.com
    UseCanonicalName Off
    CustomLog /usr/local/apache/domlogs/danielakosanstore.com combined
    CustomLog /usr/local/apache/domlogs/danielakosanstore.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    ## User danielak # Needed for Cpanel::ApacheConf
    <IfModule mod_suphp.c>
        suPHP_UserGroup danielak danielak
    </IfModule>
    <IfModule !mod_disable_suexec.c>
        SuexecUserGroup danielak danielak
    </IfModule>
    ScriptAlias /cgi-bin/ /home/danielak/public_html/cgi-bin/

    Include "/usr/local/apache/conf/userdata/*.conf"
    Include "/usr/local/apache/conf/userdata/*.owner-root"
    Include "/usr/local/apache/conf/userdata/std/*.conf"
    Include "/usr/local/apache/conf/userdata/std/*.owner-root"
    Include "/usr/local/apache/conf/userdata/std/2/*.conf"
    Include "/usr/local/apache/conf/userdata/std/2/*.owner-root"
    Include "/usr/local/apache/conf/userdata/std/2/danielak/*.conf"
    Include "/usr/local/apache/conf/userdata/std/2/danielak/danielakosanstore.com/*.conf"

Файл конфигурации, включенный в эти последние строки, загружает сервлеты:

</VirtualHost>

<IfModule mod_jk.c>
 JkMount /*.jsp ajp13
 JkMount /* ajp13
 JkUnmount /*.php* ajp13
 JkUnmount /*.cgi ajp13
 JkUnmount /*.shtm* ajp13
 JkUnmount /*.pl ajp13
 JkMount /servlet/* ajp13
 JkMount /servlets/* ajp13
</IfModule>

Что, вы парни, думаете ? мне нужно иметь возможность добавлять кучу клиентов-учетных записей-сервлетов или удалять их автоматически

Большое спасибо!

ОБНОВЛЕНИЕ, улучшение моего вопроса:

Этот раздел предназначен для получения дополнительных сведений о базе вопросов по отзывам и вопросам о квантах в комментариях:

кванты: Что вы хотите для балансировки нагрузки, когда у вас есть только один экземпляр Tomcat на VPS3? Что значит «добавить кучу клиентов-учетных записей-сервлетов»?
Ответ: Видите ли, я, наверное, неправильно использовал термин «балансировка нагрузки», я устанавливаю по одному Java-приложению для каждой учетной записи, учетная запись - это веб-сайт, который работает на основе этого Java-приложения, для каждого веб-сайта есть пользователь Linux и виртуальный хост в http.cnf (apache) и один виртуальный хост в server.xml. Apache действует как прокси для tomcat на текущем VPS. Сейчас есть только один VPS. Мне нужна такая же настройка, но с запуском tomcat на другом компьютере. Таким образом, если память машины tomcat не хватает, я могу установить новую машину tomcat, поместить туда нового клиента. Для этого я назвал балансировку нагрузки. Но у меня такое чувство, что я неправильно использую этот термин.

Я устанавливаю одно Java-приложение для каждой учетной записи, учетная запись - это веб-сайт, который работает на основе этого Java-приложения, для каждого веб-сайта есть пользователь linux, виртуальный хост в http.cnf (apache) и один виртуальный хост в server.xml . Apache действует как прокси для tomcat на текущем VPS. Сейчас есть только один VPS. Мне нужна такая же настройка, но запуск Tomcat на другом компьютере.

Конечно, вы можете сделать это, изменив worker.<worker_name>.host на IP-адрес внутреннего экземпляра Tomcat в workers.properties, что-то вроде этого:

worker.worker1.host=backend.Tomcat's.IP.address

Могу ли я связать конкретного клиента (веб-сайт, виртуальный хост, учетную запись ... то же самое в данном случае) с конкретным работником

Да, ты можешь. Положите JkMount в VirtualHost раздел:

<VirtualHost *:80>
    ServerName  ...
    ServerAdmin ...

    JkMount /*.jsp ajp13
    JkMount /* ajp13
    ...
</VirtualHost>