Reverse-Proxy-Konfiguration - 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.

Reverse-Proxy-Konfiguration

Alle Amazon-Linux-2- und Amazon-Linux-2023-Plattformversionen nutzen nginx als standardmäßigen Reverse-Proxy-Server. Die Tomcat-PHP, Node.js- und Python-Plattformen unterstützen HTTPD als Alternative auch Apache. Um Apache auf diesen Plattformen auszuwählen, legen Sie die Option ProxyServer im Namespace aws:elasticbeanstalk:environment:proxy auf apache fest. Alle Plattformen ermöglichen eine einheitliche Konfiguration des Proxy-Servers wie in diesem Abschnitt beschrieben.

Anmerkung

Auf Amazon AMI Linux-Plattformversionen (vor Amazon Linux 2) müssen Sie Proxy-Server möglicherweise anders konfigurieren. Diese Legacy-Details finden Sie in den jeweiligen Plattform-Themen in diesem Handbuch.

Elastic Beanstalk konfiguriert den Proxyserver auf den Instances Ihrer Umgebung so, dass er Web-Traffic an die Haupt-Webanwendung im Stammverzeichnis URL der Umgebung weiterleitet, zum Beispiel. http://my-env.elasticbeanstalk.com

Standardmäßig wird der Proxy von Elastic Beanstalk so konfiguriert, dass alle Anforderungen an Port 80 an Ihre primäre Webanwendung unter Port 5000 weitergeleitet werden. Sie können diese Portnummer konfigurieren, indem Sie die PORT-Umgebungseigenschaft mithilfe des Namespace aws:elasticbeanstalk:application:environment in einer Konfigurationsdatei festlegen, wie im folgenden Beispiel gezeigt.

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

Weitere Informationen zum Festlegen von Umgebungsvariablen für Ihre Anwendung finden Sie unter Optionseinstellungen.

Ihre Anwendung sollte den Port überwachen, der dafür im Proxy konfiguriert ist. Wenn Sie den Standardport mithilfe der Umgebungseigenschaft PORT ändern, kann der Code durch Lesen des Wertes der Umgebungsvariablen PORT darauf zugreifen. Rufen Sie beispielsweise os.Getenv("PORT") in Go oder System.getenv("PORT") in Java auf. Wenn Sie Ihren Proxy so konfigurieren, dass Datenverkehr an mehrere Anwendungsprozesse gesendet wird, können Sie mehrere Umgebungseigenschaften konfigurieren und deren Werte sowohl in der Proxykonfiguration als auch in Ihrem Anwendungscode verwenden. Eine weitere Möglichkeit besteht darin, den Port-Wert als Befehlsargument in der Procfile an den Prozess zu übergeben. Weitere Informationen finden Sie unter Buildfile und Procfile.

Konfigurieren von nginx

Elastic Beanstalk verwendet nginx als Standard-Reverse-Proxy, um die Anwendung dem Elastic Load Balancing-Load Balancer zuzuweisen. Elastic Beanstalk bietet eine nginx-Standardkonfiguration, die Sie erweitern oder gänzlich mit einer eigenen Konfiguration überschreiben können.

Anmerkung

Wenn Sie eine .conf Nginx-Konfigurationsdatei hinzufügen oder bearbeiten, achten Sie darauf, sie als -8 zu codieren. UTF

Um die nginx-Standardkonfiguration von Elastic Beanstalk zu erweitern, fügen Sie .conf-Konfigurationsdateien zum Ordner .platform/nginx/conf.d/ im Quell-Bundle der Anwendung hinzu. Die nginx-Konfiguration von Elastic Beanstalk fügt .conf-Dateien automatisch zu diesem Ordner hinzu.

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

Um die nginx-Standardkonfiguration von Elastic Beanstalk vollständig zu überschreiben, fügen Sie bei .platform/nginx/nginx.conf eine Konfiguration in das Quellpaket ein.

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

Wenn Sie die nginx-Konfiguration von Elastic Beanstalk überschreiben, fügen Sie folgende Zeile zu nginx.conf hinzu, damit die Elastic-Beanstalk-Konfigurationen für Elastic Beanstalk hat die Gesundheitsberichterstattung und -überwachung verbessert, automatische Anwendungszuweisungen und statische Dateien einbezogen werden.

include conf.d/elasticbeanstalk/*.conf;

Apache konfigurieren HTTPD

Auf den Plattformen TomcatPHP, Node.js und Python können Sie den HTTPD Apache-Proxyserver als Alternative zu Nginx wählen. Dies ist nicht die Standardoption. Im folgenden Beispiel wird Elastic Beanstalk für die Verwendung von Apache konfiguriert. HTTPD

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

Sie können die Elastic Beanstalk-Apache-Standardkonfiguration mit Ihren zusätzlichen Konfigurationsdateien erweitern. Alternativ können Sie die Apache-Standardkonfiguration von Elastic Beanstalk vollständig überschreiben.

Um die Apache-Standardkonfiguration von Elastic Beanstalk zu erweitern, fügen Sie .conf-Konfigurationsdateien zum Ordner .platform/httpd/conf.d im Quell-Bundle der Anwendung hinzu. Die Apache-Konfiguration von Elastic Beanstalk fügt .conf-Dateien automatisch zu diesem Ordner hinzu.

~/workspace/my-app/ |-- .ebextensions | -- httpd-proxy.config |-- .platform | -- httpd | -- conf.d | -- port5000.conf | -- ssl.conf -- index.jsp

Beispielsweise wird mit der folgenden Apache 2.4-Konfiguration ein Listener auf Port 5000 hinzugefügt:

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

Um die Apache-Standardkonfiguration von Elastic Beanstalk vollständig zu überschreiben, fügen Sie bei .platform/httpd/conf/httpd.conf eine Konfiguration in das Quellpaket ein.

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

Wenn Sie die Apache-Konfiguration von Elastic Beanstalk überschreiben, fügen Sie folgende Zeilen zu httpd.conf hinzu, damit die Elastic-Beanstalk-Konfigurationen für Elastic Beanstalk hat die Gesundheitsberichterstattung und -überwachung verbessert, automatische Anwendungszuweisungen und statische Dateien einbezogen werden.

IncludeOptional conf.d/elasticbeanstalk/*.conf