Pergunta

Trabalhamos com os produtos IBM e normalmente usamos servidores IBM HTTP (Leia o Apache) como um proxy reverso para nossos servidores de aplicativos. Por razões de desempenho, atendemos conteúdo estático (.gif, .jpg, .css, .html etc.) de nossos servidores HTTP, para aliviar um pouco a carga do servidor de aplicativos.

Até agora, temos que distribuir arquivos ao servidor HTTP e configurá -lo manualmente (escrevendo scripts personalizados na melhor das hipóteses.) O problema é o esforço necessário para manter tudo em sincronia, especialmente quando você precisa atualizar o aplicativo.

Algum produto Java EE suporta isso "fora da caixa"? Existe uma maneira de fazer com que o servidor de aplicativos faça isso automaticamente, como na configuração do cluster, por exemplo, onde o nó mestre é responsável por distribuir o aplicativo para outros nós e manter tudo em sincronia.

Foi útil?

Solução

Até agora, temos que distribuir arquivos ao servidor HTTP e configurá -lo manualmente (escrevendo scripts personalizados na melhor das hipóteses.)

Não tenho certeza se eu recebo a peça de configuração. Geralmente, é muito fácil distinguir o conteúdo estático de JSPs e servlet (e uma vez feito, não muda muito).

O problema é o esforço necessário para manter tudo em sincronia, especialmente quando você precisa atualizar o aplicativo.

Automatizar! Com Maven (ou Formiga, mas isso exigirá um pouco mais de trabalho), é fácil criar conjuntos separados a partir de um projeto da Web para lidar com isso: uma guerra para os nós Java EE, um zíper de conteúdo estático para os servidores HTTP.

Algum produto Java EE suporta isso "fora da caixa"?

Afaik, não. Surpreendentemente, a implantação é uma área fraca de Java EE. Mas você pode atingir um nível decente de automação com ferramentas como Maven e/ou ControlTier.

Outras dicas

Não estou familiarizado com os produtos da IBM, mas uma prática comum é implantar os aplicativos (principalmente guerras) como diretórios em vez de arquivos de guerra para que você possa ter acesso aos próprios arquivos. Do que você mapeia o diretório de implantação para um alias no Apache, para que ele possa servir conteúdo estático a partir daí. Observe que você precisa bloquear todo o acesso ao diretório da Web-Inf e rotear todas as solicitações para arquivos JSP (.jsp, .jsf, .do, .action, etc.) para o servidor de aplicativos.

O bloqueio da web-inf é feito usando a seguinte diretiva:

<DirectoryMatch "(WEB-INF|META-INF)">  
  Order allow,deny 
  Deny from all 
  AllowOverride None 
</DirectoryMatch>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top