Configuração de proxy reverso - 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á.

Configuração de proxy reverso

Todas as versões de plataformas Amazon Linux 2 e Amazon Linux 2023 usam o nginx como servidor de proxy reverso padrão. As plataformas TomcatPHP, Node.js e Python também oferecem suporte ao HTTPD Apache como alternativa. Para selecionar o Apache nessas plataformas, defina a opção ProxyServer no namespace aws:elasticbeanstalk:environment:proxy como apache. Todas as plataformas habilitam a configuração do servidor de proxy de forma uniforme, conforme descrito nesta seção.

nota

Nas versões da AMI plataforma Amazon Linux (anteriores ao Amazon Linux 2), talvez seja necessário configurar servidores proxy de forma diferente. É possível encontrar esses detalhes legados nos respectivos tópicos de plataforma neste guia.

O Elastic Beanstalk configura o servidor proxy nas instâncias do seu ambiente para encaminhar o tráfego da web para a aplicação web principal na raiz URL do ambiente; por exemplo,. http://my-env.elasticbeanstalk.com

Por padrão, o Elastic Beanstalk configura o proxy para encaminhar solicitações recebidas na porta 80 para a aplicação Web principal na porta 5000. Você pode configurar esse número de porta definindo a propriedade PORT do ambiente usando o namespace aws:elasticbeanstalk:application:environment em um arquivo de configuração, conforme mostrado no exemplo a seguir.

option_settings: - namespace: aws:elasticbeanstalk:application:environment option_name: PORT value: <main_port_number>

Para obter mais informações sobre como configurar variáveis de ambiente para o aplicativo, consulte Configurações de opção.

Seu aplicativo deve ter como base a porta que está configurada para ele no proxy. Se você alterar a porta padrão usando a propriedade PORT do ambiente, seu código poderá acessá-la ao ler o valor da variável PORT do ambiente. Por exemplo, chame os.Getenv("PORT") em Go ou System.getenv("PORT") em Java. Se você configurar o proxy para enviar tráfego para vários processos de aplicativo, será possível configurar várias propriedades de ambiente e usar seus valores na configuração de proxy e no código do aplicativo. Outra opção é passar o valor da porta para o processo como um argumento de comando no Procfile. Para ter mais informações, consulte Buildfile e Procfile.

Configurar o nginx

O Elastic Beanstalk usa o nginx como proxy reverso padrão para mapear sua aplicação para o balanceador de carga do Elastic Load Balancing. O Elastic Beanstalk oferece uma configuração de nginx padrão que pode ser estendida ou substituída completamente por sua própria configuração.

nota

Ao adicionar ou editar um arquivo de configuração .conf nginx, certifique-se de codificá-lo como -8. UTF

Para estender a configuração nginx padrão do Elastic Beanstalk, adicione arquivos de configuração .conf a uma pasta denominada .platform/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/ |-- .platform | `-- nginx | `-- conf.d | `-- myconf.conf `-- other source files

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

~/workspace/my-app/ |-- .platform | `-- nginx | `-- nginx.conf `-- other source files

Se você substituir a configuração nginx do Elastic Beanstalk, adicione a linha a seguir ao seu nginx.conf para extrair as configurações do Elastic Beanstalk para Relatórios e monitoramento de saúde aprimorados do Elastic Beanstalk, mapeamentos automáticos de aplicações e arquivos estáticos.

include conf.d/elasticbeanstalk/*.conf;

Configurando o Apache HTTPD

As plataformas TomcatPHP, Node.js e Python permitem que você escolha o servidor proxy HTTPD Apache como alternativa ao nginx. Esse não é o padrão. O exemplo a seguir configura o Elastic Beanstalk para usar o Apache. HTTPD

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

É 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.

Para estender a configuração padrão do Apache do Elastic Beanstalk, adicione arquivos de configuração .conf a uma pasta chamada .platform/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-proxy.config |-- .platform | -- httpd | -- conf.d | -- port5000.conf | -- ssl.conf -- index.jsp

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

exemplo .platform/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 .platform/httpd/conf/httpd.conf.

~/workspace/my-app/ |-- .ebextensions | -- httpd-proxy.config |-- .platform | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp
nota

Se você substituir a configuração do Apache do Elastic Beanstalk, adicione as linhas a seguir ao httpd.conf para extrair as configurações do Elastic Beanstalk para Relatórios e monitoramento de saúde aprimorados do Elastic Beanstalk, mapeamentos automáticos de aplicações e arquivos estáticos.

IncludeOptional conf.d/elasticbeanstalk/*.conf