Configurar servidor de proxy do seu ambiente Tomcat - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar servidor de proxy do seu ambiente Tomcat

A plataforma Tomcat usa nginx (o padrão) ou Apache HTTP Server como o proxy reverso para retransmitir solicitações da porta 80 na instância para o contêiner da Web Tomcat escutando na porta 8080. O Elastic Beanstalk oferece uma configuração de proxy padrão que pode ser estendida ou substituída completamente por sua própria configuração.

Configurar o servidor proxy na sua versão da plataforma

Todas as plataformas AL2023/AL2 oferecem suporte a um recurso de configuração de proxy uniforme. Para obter mais informações sobre a configuração do servidor proxy nas versões de plataforma que executam o AL2023/AL2, expanda a seção Configuração do proxy reverso em Estender as plataformas Linux do Elastic Beanstalk.

Se o seu ambiente Tomcat do Elastic Beanstalk usar uma versão da plataforma AMI do Amazon Linux (anterior ao Amazon Linux 2), leia as informações adicionais nesta seção.

Observações
  • As informações neste tópico somente são aplicáveis a ramificações de plataforma com base na Amazon Linux AMI (AL1). As ramificações de plataforma AL2023/AL2 são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e exigem definições de configuração diferentes.

  • Em 18 de julho de 2022, o Elastic Beanstalk definiu o status de todas as ramificações de plataforma baseadas no Amazon Linux AMI (AL1) como descontinuadas. Para obter mais informações sobre como migrar para uma ramificação da plataforma Amazon Linux 2023 atual e totalmente compatível, consulte Migrar a aplicação Linux do Elastic Beanstalk para o Amazon Linux 2023 ou Amazon Linux 2.

As versões da plataforma Tomcat baseadas na AMI do Amazon Linux (anterior ao Amazon Linux 2) usam o Apache 2.4 para o proxy por padrão. Você pode optar por usar o Apache 2.2 ou o nginx incluindo um arquivo de configuração no código-fonte. O exemplo a seguir configura o Elastic Beanstalk para usar nginx.

exemplo .ebextensions/nginx-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: nginx

Se seu aplicativo foi desenvolvido para o Apache 2.2, leia esta seção para saber mais sobre como migrar para o Apache 2.4.

A partir das configurações da versão 3.0.0 da plataforma Tomcat, que foram lançadas com a atualização da plataforma Java com Tomcat em 24 de maio de 2018, o Apache 2.4 é o proxy padrão da plataforma Tomcat. Os arquivos .conf do Apache 2.4 são, em sua maioria, mas não inteiramente, compatíveis com os do Apache 2.2. O Elastic Beanstalk inclui arquivos .conf padrão que funcionam corretamente com cada versão do Apache. Se seu aplicativo não personalizar a configuração do Apache, conforme explicado em Estender e substituir a configuração padrão do Apache: Amazon Linux AMI (AL1), ele deve migrar para o Apache 2.4 sem problemas.

Se o seu aplicativo ampliar ou substituir a configuração do Apache, talvez você precise fazer algumas alterações para migrar para o Apache 2.4. Para obter mais informações, consulte Atualizar da versão 2.2 para 2.4 no site The Apache Software Foundation. Como uma medida temporária, até você migrar com êxito para o Apache 2.4, você pode optar por usar o Apache 2.2 com seu aplicativo incluindo o seguinte arquivo de configuração em seu código-fonte.

exemplo .ebextensions/apache-legacy-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache/2.2

Para uma correção rápida, também é possível selecionar o servidor de proxy no console do Elastic Beanstalk.

Como selecionar o proxy no ambiente Tomcat no console do Elastic Beanstalk
  1. Abra o console do Elastic Beanstalk e, na lista Regions (Regiões), selecione a sua Região da AWS.

  2. No painel de navegação, selecione Ambientes e selecione o nome do ambiente na lista.

    nota

    Se você tiver muitos ambientes, use a barra de pesquisa para filtrar a lista de ambientes.

  3. No painel de navegação, escolha Configuration (Configuração).

  4. Na categoria de configuração Updates, monitoring, and logging (Atualizações, monitoramento e logs), escolha Edit (Editar).

  5. Para Proxy server (Servidor de proxy), escolha Apache 2.2 (deprecated).

  6. Para salvar as alterações, escolha Apply (Aplicar) na parte inferior da página.

Escolher o proxy para um ambiente Tomcat na categoria de configuração de software do console do Elastic Beanstalk

É possível estender a configuração padrão do Apache do Elastic Beanstalk com seus arquivos de configuração adicionais. Também há opção de substituir completamente a configuração padrão do Apache do Elastic Beanstalk.

nota

Para estender a configuração padrão do Apache do Elastic Beanstalk, adicione arquivos de configuração .conf a uma pasta chamada .ebextensions/httpd/conf.d no pacote de origem da aplicação. A configuração do Apache do Elastic Beanstalk inclui os arquivos .conf nessa pasta automaticamente.

~/workspace/my-app/ |-- .ebextensions | -- httpd | -- conf.d | -- myconf.conf | -- ssl.conf -- index.jsp

Por exemplo, a configuração do Apache 2.4 a seguir adiciona um ouvinte na porta 5000.

exemplo .ebextensions/httpd/conf.d/port5000.conf
listen 5000 <VirtualHost *:5000> <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-error_log </VirtualHost>

Para substituir completamente a configuração padrão do Apache do Elastic Beanstalk, inclua uma configuração no pacote de origem em .ebextensions/httpd/conf/httpd.conf.

~/workspace/my-app/ |-- .ebextensions | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp

Se você substituir a configuração do Apache do Elastic Beanstalk, adicione as linhas a seguir a httpd.conf para extrair as configurações do Elastic Beanstalk para Monitoramento e relatório de integridade aprimorada, compactação de resposta e arquivos estáticos.

IncludeOptional conf.d/*.conf IncludeOptional conf.d/elasticbeanstalk/*.conf

Se seu ambiente usar o Apache 2.2 como o proxy, substitua as diretivas IncludeOptional por Include. Para obter detalhes sobre o comportamento dessas duas diretivas nas duas versões do Apache, consulte Include no Apache 2.4, IncludeOptional no Apache 2.4 e Include no Apache 2.2.

nota

Para substituir o listener padrão na porta 80, inclua um arquivo denominado 00_application.conf em .ebextensions/httpd/conf.d/elasticbeanstalk/ para substituir a configuração do Elastic Beanstalk.

Para ver um exemplo prático, examine o arquivo de configuração padrão do Elastic Beanstalk em /etc/httpd/conf/httpd.conf em uma instância no ambiente. Todos os arquivos na pasta .ebextensions/httpd em seu pacote de origem são copiados para /etc/httpd durante as implantações.

Para estender a configuração padrão do nginx do Elastic Beanstalk, adicione arquivos de configuração .conf a uma pasta denominada .ebextensions/nginx/conf.d/ no pacote de origem da sua aplicação. A configuração nginx do Elastic Beanstalk inclui arquivos .conf nesta pasta automaticamente.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | |-- elasticbeanstalk | | `-- my-server-conf.conf | `-- my-http-conf.conf `-- index.jsp

Os arquivos com a extensão .conf na pasta conf.d são incluídos no bloco http da configuração padrão. Os arquivos na pasta conf.d/elasticbeanstalk são incluídos no bloco server dentro do bloco http.

Para substituir completamente a configuração nginx padrão do Elastic Beanstalk, inclua uma configuração em seu pacote de origem em .ebextensions/nginx/nginx.conf.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- index.jsp
Observações
  • Se você substituir a configuração nginx do Elastic Beanstalk, adicione a linha a seguir ao bloco server da configuração para extrair as configurações do Elastic Beanstalk para o listener da porta 80, a compactação de resposta e os arquivos estáticos.

    include conf.d/elasticbeanstalk/*.conf;
  • Para substituir o listener padrão na porta 80, inclua um arquivo denominado 00_application.conf em .ebextensions/nginx/conf.d/elasticbeanstalk/ para substituir a configuração do Elastic Beanstalk.

  • Inclua também a linha a seguir no bloco http da configuração para extrair as configurações do Elastic Beanstalk para Monitoramento e relatório de integridade aprimorada e registro em log.

    include conf.d/*.conf;

Para ver um exemplo prático, examine o arquivo de configuração padrão do Elastic Beanstalk em /etc/nginx/nginx.conf em uma instância no ambiente. Todos os arquivos na pasta .ebextensions/nginx em seu pacote de origem são copiados para /etc/nginx durante as implantações.