

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
<a name="platforms-linux-extend.proxy"></a>

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 Tomcat, Node.js, PHP e Python também oferecem suporte ao Apache HTTPD como uma 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 plataforma da AMI do Amazon Linux (anteriores ao Amazon Linux 2), talvez seja necessário configurar servidores de proxy de forma diferente. É possível encontrar esses detalhes legados nos [respectivos tópicos de plataforma](concepts-all-platforms.md) neste guia.

O Elastic Beanstalk configura o servidor de proxy nas instâncias do ambiente para encaminhar o tráfego da Web para a aplicação Web principal no URL raiz 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](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) 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](ebextensions-optionsettings.md).

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 obter mais informações, consulte [Buildfile e Procfile](platforms-linux-extend.build-proc.md).

## Configurar o nginx
<a name="platforms-linux-extend.proxy.nginx"></a>

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` do nginx, codifique-o como UTF-8.

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}}
```

Os arquivos de configuração em `.platform/nginx/conf.d/` estão incluídos no bloco `http` da configuração do nginx. Use esse local para configurações globalmente aplicáveis.

Para estender a configuração nginx padrão do bloco `server`, adicione arquivos de configuração `.conf` a uma pasta denominada `.platform/nginx/conf.d/elasticbeanstalk/` no pacote de origem do seu aplicativo. A configuração do Elastic Beanstalk nginx inclui arquivos `.conf` nesta pasta dentro do bloco `server`.

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- elasticbeanstalk
|               `-- server.conf
`-- {{other source files}}
```

Use esse local para adicionar configurações específicas do servidor, como blocos de localização adicionais, páginas de erro personalizadas ou diretivas em nível de servidor. O exemplo a seguir adiciona um bloco de localização personalizado.

**Example . platform/nginx/conf.d/elasticbeanstalk/server.conf**  

```
location /test {
    return 200 "Hello World!";
    add_header Content-Type text/plain;
}
```

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 integridade aprimorados no Elastic Beanstalk](health-enhanced.md), mapeamentos automáticos de aplicações e arquivos estáticos.

```
 include conf.d/elasticbeanstalk/*.conf;
```

## Configurar o Apache HTTPD
<a name="platforms-linux-extend.proxy.httpd"></a>

As plataformas Tomcat, Node.js, PHP e Python permitem escolher o servidor de proxy Apache HTTPD como uma alternativa ao nginx. Esse não é o padrão. O exemplo a seguir configura o Elastic Beanstalk para usar o Apache HTTPD.

**Example .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.  

**Example . 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
```
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 integridade aprimorados no Elastic Beanstalk](health-enhanced.md), mapeamentos automáticos de aplicações e arquivos estáticos.  

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