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.