Konfigurieren des Reverseproxy - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren des Reverseproxy

Elastic Beanstalk verwendet nginx als Reverse-Proxy, um Ihre Anwendung Ihrem Elastic-Load-Balancing-Load-Balancer auf Port 80 zuzuordnen. Elastic Beanstalk bietet eine nginx-Standardkonfiguration, die Sie entweder erweitern oder gänzlich mit einer eigenen Konfiguration überschreiben können.

Standardmäßig wird der nginx-Proxy von Elastic Beanstalk so konfiguriert, dass alle Anforderungen an die Anwendung über Port 5000 weitergeleitet werden. Diese Port-Standardeinstellung können Sie überschreiben. Legen Sie dazu die PORT-Umgebungseigenschaft auf den Überwachungsport der Hauptanwendung fest.

Anmerkung

Der Überwachungsport der Anwendung kollidiert nicht mit dem Überwachungsport des nginx-Servers, von dem dieser die Anforderungen des Load Balancers empfängt.

Konfigurieren des Proxy-Servers auf Ihrer Plattformversion

Alle AL2023/AL2-Plattformen unterstützen eine einheitliche Proxy-Konfigurationsfunktion. Weitere Informationen zum Konfigurieren des Proxy-Servers auf neuen Plattformversionen, die AL2023/AL2 ausführen, finden Sie durch Erweitern des Abschnitts Reverse-Proxy-Konfiguration unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Falls Ihre Elastic Beanstalk Java SE-Umgebung eine Amazon Linux AMI-Plattformversion (vor Amazon Linux 2) verwendet, lesen Sie die zusätzlichen Informationen in diesem Abschnitt.

Hinweise
  • Die Informationen in diesem Thema beziehen sich nur auf Plattformverzweigungen auf Basis von Amazon Linux AMI (AL1). AL2023/AL2-Plattformzweige sind mit früheren Plattformversionen von Amazon Linux AMI (AL1) inkompatibel und erfordern andere Konfigurationseinstellungen.

  • Am 18. Juli 2022 stellte Elastic Beanstalk den Status aller Plattformzweige auf Basis von Amazon-Linux-AMI (AL1) auf außer Betrieb genommen. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

Um die nginx-Standardkonfiguration von Elastic Beanstalk zu überschreiben, fügen Sie .conf-Konfigurationsdateien zum Ordner .ebextensions/nginx/conf.d/ im Quell-Bundle der Anwendung hinzu. Die nginx-Konfiguration von Elastic Beanstalk enthält standardmäßig .conf-Dateien in diesem Ordner.

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

Um die nginx-Standardkonfiguration von Elastic Beanstalk vollständig zu überschreiben, binden Sie bei eine Konfiguration in Ihr Quell-Bundle ei .ebextensions/nginx/nginx.conf:

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

Wenn Sie die nginx-Konfiguration von Elastic Beanstalk überschreiben, fügen Sie folgende Zeile zu nginx.conf hinzu, damit die Konfigurationen von Elastic Beanstalk für Erweiterte Zustandsberichte und Überwachung, automatische Anwendungszuordnungen und statische Dateien einbezogen werden.

include conf.d/elasticbeanstalk/*.conf;

Die folgende Beispielkonfiguration aus der Beispielanwendung Scorekeep überschreibt die Standardkonfiguration von Elastic Beanstalk, um eine statische Webanwendung aus dem public-Unterverzeichnis von /var/app/current zu bedienen, wohin die Java SE-Plattform den Anwendungsquellcode kopiert. Der /api-Standort leitet den Datenverkehr zu Routen unter /api/ an die Spring-Anwendung weiter, die den Port 5000 liest. Jeder andere Datenverkehr wird von der Web-Anwendung auf dem Root-Pfad bedient.

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