pergunta de balanceamento de carga do tomcat

1

Eu tenho um VPS cpanel em um datacenter (linode), onde eu tenho um monte de contas de clientes, eu quero equilibrar as cargas usando 2 VPSs adicionais no mesmo datacenter conectado com IP's privados.

Eu estava pensando em configurar isso para balancear cargas:

VPS 1: Cpanel, servidor de correio, Apache (Proxy). Receba solicitações, IP público.
VPS 2: Mysql.
VPS 3: Tomcat.

Neste momento, minha prioridade é definir o VPS 3.

A arquitetura do Cpanel carrega os módulos Java através do carregamento do apache, incluindo na definição do host virtual um mod_jk, eu estava pensando em mudar o servlet para o tomcat VPS e mudar sua localização para algo como:

DocumentRoot IP_OF_VPS:/home/didactac/public_html

Como eu não tenho certeza se isso vai funcionar!

Aqui está um host virtual no apache:

<VirtualHost 173.230.130.64:80>
    ServerName danielakosanstore.com
    ServerAlias www.danielakosanstore.com
    DocumentRoot /home/danielak/public_html
    ServerAdmin [email protected]
    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"

O arquivo de configuração incluído nessas últimas linhas, que carrega os servlets:

</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>

O que vocês acham? Eu preciso ser capaz de adicionar um monte de clientes-contas-servlets, ou excluí-los automaticamente

Muito obrigado!

UPDATE, melhorando a minha pergunta:

Esta seção destina-se a detalhes adicionais sobre a base de perguntas sobre o feedback e as perguntas dos quanta nos comentários:

quanta : O que você deseja fazer com o balanceamento de carga quando você tem apenas uma instância do Tomcat no VPS3? O que significa "adicionar um monte de clientes-contas-servlets" significa?
Resposta : Provavelmente eu não usei o termo balanceamento de carga da maneira certa, você vê, eu instalo um aplicativo java por conta , uma conta é um site que é executado com base neste aplicativo java, para cada site existe um usuário linux e um host virtual em http.cnf (apache) e um host virtual no server.xml. O Apache age como um proxy, para o tomcat no VPS atual. Neste momento existe apenas um VPS. O que eu preciso é essa mesma configuração, mas executando o tomcat em uma máquina diferente. Desta forma, se a memória da máquina do tomcat não resistir, eu posso configurar uma nova máquina do tomcat, colocar o novo cliente lá. Para isso eu chamei o balanceamento de carga. Mas tenho a sensação de que não estou usando o termo da maneira certa.

    
por Ernest 03.09.2011 / 01:50

1 resposta

1

I install one java application per account, an account is a website that runs based on this java app, for each website there is a linux user, and a virtual host in http.cnf (apache) and one virtual host in the server.xml. Apache acts as a proxy, for tomcat on the current VPS. Right now there is only one VPS. What i need is this same setup but running tomcat in a different machine.

Claro, você pode fazer isso alterando o worker.<worker_name>.host para o endereço IP da instância de back-end do Tomcat em workers.properties , algo assim:

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

Can i link a specific client (website, virtual host, account... the same in this case) to a specific worker

Sim, você pode. Coloque a seção JkMount into VirtualHost :

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

    JkMount /*.jsp ajp13
    JkMount /* ajp13
    ...
</VirtualHost>
    
por 05.09.2011 / 19:29