Amazon + Tomcat: encaminhar direto para um caminho/aplicação específico

Tomcat-logo.svg

Um desejo comum ao configurar servidores na nuvem é que ao digitar somente o nome do servidor o usuário seja encaminhado diretamente para a aplicação principal configurada neste. Porém, já sabemos que o Elastic Load Balancer não consegue encaminhar as requisições avaliando as URLs. Ele balanceia com base apenas no host. Como fazer então para que ao digitar somente http://www.meuservidor.com o usuário seja encaminhado para uma aplicação http://www.meuservidor.com/minhaapp, que está rodando no Tomcat dentro de uma instância EC2 atrás de um ELB?

Nosso balanceador estará configurado para encaminhar as requisições da porta 80 para a porta 8080 (porta HTTP default do Tomcat), e com isso as requisições para http://www.meuservidor.com serão encaminhadas para o Tomcat. No Tomcat as requisições que não especificam um caminho específico são direcionadas para a aplicação ROOT, que vem na instalação padrão do servidor. Para aplicar o redirect padrão do contexto ROOT para o contexto da aplicação, basta fazer conforme a seguir no index.jsp da aplicação ROOT. Porém, podemos ter tantos redirects e processamentos de URL quantos forem necessários.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<% response.sendRedirect("http://www.meuservidor.com/minhaapp"); %>
</html>

Até a próxima!

Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.