Você já precisou publicar varias aplicações em servidores, portas e serviços distintos em um unico endereço e porta disponibilizado? Isso costuma ocorrer quando se tem pouca disponibilidade de IPs no ambiente ou até mesmo por questões de segurança. É possível fazer isso através de Http_class e também com iRules, que pode ser visto neste artigo : Balanceamento de pools via iRule.
Http_Class foi criado com intuito de facilitar esses redirecionamento sem a necessidade de programar, possibilitando a usuários sem conhecimento em desenvolvimento de código que consigam fazer esse tipo de configuração.
Em ambientes com escassez de endereços IP e portas, característica comum em redes publicas IPv4, é necessário pensar em soluções para que seja possível aproveitar os endereços IP validos disponíveis. Imagine um ambiente que necessita de cinco aplicações web divulgadas em um endereço especifico na porta 80 e algumas dessas aplicações estão publicadas em apenas um dos servidores internos. Com tantos parâmetros, como fazer um balanceamento adequado? Existem diversas formas de resolver desafios como este, porém se você possui um balanceador de carga com suporte a iRules, como o F5 BIG-IP, é possível resolver isso facilmente.
Veja o esquema abaixo:
Imagem 1: Diagrama do balanceamento feito neste techtip.
O BIG-IP tem uma arquitetura full proxy. Isto significa que ele pode abrir comunicação, com o cliente e servidor em “linguagens diferentes”. Por exemplo, comunica-se em protocolo criptografado https com os clientes e http com os servidores. Neste exemplo percebe-se que para o usuário final não será necessário incluir a porta 8080 no endereço do VIP para acessar a porta certa nos servidores.
O primeiro passo é criar os pools: Local Traffic->pools->create
Imagem 2: Criando pool_tomcat_8080.
Neste exemplo, configuramos os seguintes pools:
Imagem 3: Listando pools criados.
Com os pools devidamente criados, deve-se acessar: Local Traffic -> iRules -> Create
Local Traffic -> Profile -> Protocol -> HTTP Class -> Create;
1. Name: Nome do seu HTTP_Class;
2. Selecione custom em URI Paths e selecione Match only…;
3. Defina as URIs Path desejas para que entre na condição desejada;
4. Selecione em Actions Send to pool e defina o pool deseja para redirecionamento;
Imagem 4: Configurando HTTP Class
5. Clique em finished.
Anexar os HTTP_Class no VIP desejado em: Local Traffic-> Virtual Servers -> Resources -> HTTP Class Profiles (Manage).
Imagem 5: Anexando Http Class Profile ao VIP.
Após anexar iRule o VIP será capaz de responder todas as requisições dos usuários e encaminhando para o pool correto conforme definido na iRule. Supondo que o endereço vip é 2.2.2.2 o acesso para o usuário a todas as aplicações será:
2.2.2.2/admin
2.2.2.2/manager/html
2.2.2.2/lojaVirtualWeb
2.2.2.2/ termoquitacao
2.2.2.2/mge
Profile de Http Class é uma solução simples de classificar o trafego HTTP e definir para qual pool de servidores será encaminhado o tráfego. Pode ser configurado por usuários que não possuem conhecimento em TCL para desenvolvimento de uma iRule. Tem performance superior comparado com a iRule para este caso específico e ao longo prazo acaba sendo mais fácil gerenciar os redirecionamentos individualmente. Isso porque quando se tem apenas uma iRule com todos os redirecionamentos, quando é feita uma modificação, existe risco de parar algum ambiente caso alguém altere uma linha sem intenção.