Configurar o servidor de proxy - 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 o servidor de proxy

O Elastic Beanstalk usa o nginx como proxy reverso para mapear sua aplicação para o balanceador de carga do Elastic Load Balancing na porta 80. O Elastic Beanstalk oferece uma configuração nginx padrão que você pode estender ou substituir completamente por sua própria configuração.

Por padrão, o Elastic Beanstalk configura o proxy nginx para encaminhar solicitações à sua aplicação na porta 5000. Você pode substituir a porta padrão definindo a propriedade do ambiente PORT para a porta de escuta do seu aplicativo principal.

nota

A porta que seu aplicativo escuta não afeta a porta na qual o servidor nginx escuta para receber solicitações do balanceador de carga.

Configurar o servidor proxy na sua versão da plataforma

Todas as AL2 plataformas AL2 023/ 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 AL2 023/AL2, consulte. Configuração de proxy reverso

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

Observações
  • As informações neste tópico se aplicam somente às ramificações da plataforma baseadas no Amazon Linux AMI (AL1). AL2As ramificações AL2 da plataforma 023/ 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, o Elastic Beanstalk definiu o status de todas as filiais da plataforma baseadas no Amazon Linux () como descontinuadas. AMI AL1 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.

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 os arquivos .conf nessa pasta automaticamente.

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- conf.d | `-- myconf.conf `-- web.jar

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 `-- web.jar

Se você substituir a configuração nginx do Elastic Beanstalk, adicione a linha a seguir ao arquivo 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;

A configuração demonstrativa a seguir da aplicação de exemplo Scorekeep substitui a configuração padrão do Elastic Beanstalk para atender a uma aplicação Web estática do subdiretório public de /var/app/current, em que a plataforma Java SE copia o código-fonte da aplicação. O local /api encaminha o tráfego para rotas sob /api/ para o aplicativo Spring que escuta na porta 5000. O restante do tráfego é atendido pelo aplicativo web no caminho raiz.

user nginx; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofile 33282; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include conf.d/*.conf; map $http_upgrade $connection_upgrade { default "upgrade"; } server { listen 80 default_server; root /var/app/current/public; location / { }git pull location /api { proxy_pass http://127.0.0.1:5000; proxy_http_version 1.1; proxy_set_header Connection $connection_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/access.log main; client_header_timeout 60; client_body_timeout 60; keepalive_timeout 60; gzip off; gzip_comp_level 4; # Include the Elastic Beanstalk generated locations include conf.d/elasticbeanstalk/01_static.conf; include conf.d/elasticbeanstalk/healthd.conf; } }