

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 o servidor de proxy
<a name="nodejs-platform-proxy"></a>

O Elastic Beanstalk usa o NGINX ou o Apache HTTPD como proxy reverso para mapear a aplicação para o balanceador de carga do Elastic Load Balancing na porta 80. O padrão é NGINX. O Elastic Beanstalk oferece uma configuração de proxy padrão que pode ser estendida ou modificada completamente por sua própria configuração.

Por padrão, o Elastic Beanstalk configura o proxy para encaminhar solicitações à sua aplicação na porta 5000. É possível modificar a porta padrão definindo a `PORT` [propriedade de ambiente](create_deploy_nodejs.container.md#nodejs-platform-console) para a porta de escuta da sua aplicação principal.

**nota**  
A porta na qual a aplicação escuta não afeta a porta à qual o servidor NGINXescuta para receber solicitações do balanceador de carga.

**Configurar o servidor proxy na sua versão da plataforma**  
Todas as AL2 plataformas AL2023/suportam um recurso de configuração de proxy uniforme. Para obter mais informações sobre como configurar o servidor proxy nas versões da sua plataforma executando AL2023/AL2, consulte[Configuração de proxy reverso](platforms-linux-extend.proxy.md). 

## Configurar o proxy da AMI do Amazon Linux (anterior ao Amazon Linux 2)
<a name="nodejs-platform-proxy.alami"></a>

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

**Observações**  
As informações neste tópico se aplicam somente às ramificações da plataforma baseadas no Amazon Linux AMI (AL1). AL2023/as ramificações da AL2 plataforma são incompatíveis com as versões anteriores da plataforma Amazon Linux AMI (AL1) e *exigem configurações diferentes*.
 [Em 18 de julho de 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **o Elastic Beanstalk definiu o status de todas as ramificações da 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](using-features.migration-al.md).

### Estendendo e substituindo a configuração padrão do proxy — Amazon Linux AMI () AL1
<a name="nodejs-platform-proxy.alami.extending"></a>

A plataforma Node.js usa um proxy reverso para retransmitir solicitações da porta 80 na instância para a aplicação que está escutando na porta 8081. O Elastic Beanstalk oferece uma configuração de proxy padrão que pode ser estendida ou modificada completamente por sua própria configuração.

Para estender a configuração padrão, adicione arquivos `.conf` a `/etc/nginx/conf.d` com um arquivo de configuração. Para um exemplo específico, consulte [Encerrar o HTTPS em instâncias do EC2 que executam Node.js](https-singleinstance-nodejs.md).

A plataforma Node.js define a variável de ambiente PORT como a porta para a qual o servidor proxy direciona o tráfego. Leia essa variável no seu código para configurar a porta da sua aplicação.

```
    var port = process.env.PORT || 3000;

    var server = app.listen(port, function () {
        console.log('Server running at http://127.0.0.1:' + port + '/');
    });
```

A configuração padrão do NGINX encaminha o tráfego para um servidor upstream denominado `nodejs` em `127.0.0.1:8081`. É possível remover a configuração padrão e fornecer a sua própria em um [arquivo de configuração](ebextensions.md).

**Example .ebextensions/proxy.config**  
O exemplo a seguir remove a configuração padrão e adiciona uma configuração personalizada que encaminha o tráfego para a porta 5000, em vez de 8081.  

```
files:
  /etc/nginx/conf.d/proxy.conf:
    mode: "000644"
    owner: root
    group: root
    content: |
      upstream nodejs {
        server 127.0.0.1:5000;
        keepalive 256;
      }

      server {
        listen 8080;

        if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
            set $year $1;
            set $month $2;
            set $day $3;
            set $hour $4;
        }
        access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;
        access_log  /var/log/nginx/access.log  main;

        location / {
            proxy_pass  http://nodejs;
            proxy_set_header   Connection "";
            proxy_http_version 1.1;
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        gzip on;
        gzip_comp_level 4;
        gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

        location /static {
            alias /var/app/current/static;
        }

      }

  /opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh:
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash -xe
      rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
      service nginx stop 
      service nginx start

container_commands:
  removeconfig:
    command: "rm -f /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf"
```
A configuração de exemplo (`/etc/nginx/conf.d/proxy.conf`), usa a configuração padrão em `/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf` como base para incluir o bloco de servidor padrão com configurações de compactação e log, bem como um mapeamento de arquivo estático.  
O comando `removeconfig` remove a configuração padrão do contêiner para garantir que o servidor proxy use a configuração personalizada. O Elastic Beanstalk recria a configuração padrão quando cada configuração é implantada. Para explicar isso, no exemplo a seguir, um post-configuration-deployment hook (`/opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh`) é adicionado. Isso remove a configuração padrão e reinicia o servidor de proxy.

**nota**  
A configuração padrão pode ser alterada em versões futuras da plataforma Node.js. Use a versão mais recente da configuração como base para suas personalizações para garantir a compatibilidade.

Se você substituir a configuração padrão, deverá definir os mapeamento de arquivos estáticos e a compactação GZIP. Isso ocorre porque a plataforma não pode aplicar as [ configurações padrão](create_deploy_nodejs.container.md#nodejs-namespaces).