Hospedagem virtual de um webapp tomcat no Apache no RHEL 5.0 [closed]

2

Estou em uma correção de hospedagem! Eu desenvolvi um aplicativo da web para a minha organização que permite compartilhar, interagir, etc. Eu quero implantá-lo na LAN. MAS ...

Eu não quero que o usuário final digite: 10.21.34.56:8080/webapp

Em vez disso, quero que ele digite: http://www.webapp.com e deixe o DNS local na intranet resolvê-lo para o IP correspondente.

Eu posso fazer um pouco ... Eu tenho sucesso nisso: "www.webapp.com:8080".

I don't want the 8080 to be typed.

Embora eu tenha encontrado uma maneira de fazer isso. Eu não estou totalmente satisfeito.

Por padrão, o navegador envia todos os pedidos de http para a porta 80. Então, usei o iptables no servidor e redirecionei a solicitação para a porta 8080. Isso não parece uma descoberta que valha a pena.

Então, eu ouço falar de hospedagem virtual no apache-tomcat, que eles dizem ser uma solução para isso.

Mostre-me a luz!

    
por Abhishek 28.09.2011 / 19:34

2 respostas

1

Tanto quanto eu entendi sua pergunta, você está pedindo redirecionamento de porta do apache na porta 80 para o seu tomcat appserver rodando na porta 8080, ao mesmo tempo ter o seu apache mascarar a porta nos cabeçalhos http e os usuários não têm para explicitamente digitar o número da porta no URL de navegação. Isso precisa de ponte de aplicativo entre o Apache e seu servidor de aplicativos tomcat em execução no mesmo host. Supondo que você irá hospedar um host virtual do apache no host, você precisa configurar dns para apontar o aplicativo CNAME para o host.

Você pode fazer isso de várias maneiras. Um dos métodos não está em nenhuma ordem particular (mas pode ser relativamente fácil em termos de configuração)

  • mod_rewrite & mod_proxy módulo apache. Fácil de configurar. Envolve apenas a configuração do httpd. Apenas atua como reescrita de proxy para o tráfego http na porta 80, destinado ao host virtual para o servidor http tomcat. Até agora, acho que isso é muito legal e simples, do ponto de vista da administração. Vou deixar o desenvolvedor / gerente de aplicativos responsável pela instalação do tomcat cuidar da atualização do arquivo server.xml.

    Referência: link Exemplo:

    <VirtualHost *:80>
    ServerName yourapp.yourdomain.com
    ServerAlias yourapp.*        
    ProxyRequests Off
    ProxyPreserveHost On     
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>     
    ProxyPass /webapp http://localhost:8080/webapp
    ProxyPassReverse /webapp http://localhost:8080/webapp    
    <Location /webapp>
      Order allow,deny
      Allow from all
    </Location>        
    </VirtualHost>
    
  • Executando JSP através do Apache usando o módulo mod_jk2. Meio duro. Envolve a configuração de parâmetros complexos na configuração httpd, útil se o mesmo host virtual precisar executar outros scripts, como php / perl / cgi, além de passar o tráfego para o servidor Tomcat. Existe um excelente HOWTO nestes links.

    Referência:

    link

    link

    link

  • Execute o JSP através do módulo mod_proxy_ajp do Apache: É semelhante à abordagem acima, mas este módulo se alinha com o uso da comunicação do protocolo ajp com o tomcat em vez de http para obter consistência.

    Referências:

    link

  • Resolva isso na camada de rede do host. Use iptables para redirecionar todo o tráfego de entrada na porta 80 para a porta 8080 por padrão. Envolve a compreensão e o gerenciamento das configurações do iptables. Uma configuração de tempo, mas difícil de manter. Pode ficar problemático, se você tiver que hospedar outro Apache virtualhosts na mesma máquina.

Exemplo:

iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d $(/bin/hostname) -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -d $(/bin/hostname) -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables-save
    
por 14.01.2012 / 19:19
0

O DNS associa um nome de host a um endereço IP. Não sabe nada sobre portas específicas. Se você não especificar uma porta na URL, o navegador entrará em contato com o endereço IP retornado pelo DNS, na porta 80. A redefinição da porta 80 para a porta 8080 com o iptables é a solução correta.

    
por 29.09.2011 / 00:45