Configurazione del proxy inverso - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione del proxy inverso

Tutte le versioni della piattaforma Amazon Linux 2 e Amazon Linux 2023 usano nginx come server proxy inverso predefinito. Le piattaforme TomcatPHP, Node.js e Python supportano anche HTTPD Apache come alternativa. Per selezionare Apache su queste piattaforme, impostare l'opzione ProxyServer nello spazio dei nomi aws:elasticbeanstalk:environment:proxy su apache. Tutte le piattaforme abilitano la configurazione del server proxy in modo uniforme, come descritto in questa sezione.

Nota

Nelle versioni AMI della piattaforma Amazon Linux (precedenti ad Amazon Linux 2) potrebbe essere necessario configurare i server proxy in modo diverso. Puoi trovare questi dettagli legacy sotto i rispettivi argomenti della piattaforma in questa guida.

Elastic Beanstalk configura il server proxy sulle istanze dell'ambiente per inoltrare il traffico Web all'applicazione Web principale nella radice URL dell'ambiente, ad esempio. http://my-env.elasticbeanstalk.com

Per impostazione predefinita, Elastic Beanstalk configura il proxy per inoltrare le richieste in arrivo sulla porta 80 all'applicazione Web principale sulla porta 5000. È possibile configurare questo numero di porta impostando la proprietà ambiente PORT utilizzando lo psazio dei nomi aws:elasticbeanstalk:application:environment in un file di configurazione, come illustrato nell'esempio seguente.

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

Per ulteriori informazioni sull'impostazione delle variabili di ambiente per la tua applicazione, vedi Impostazioni opzioni.

L'applicazione deve essere in ascolto sulla porta configurata per essa nel proxy. Se si modifica la porta predefinita utilizzando la proprietà dell'ambiente PORT, il codice può accedervi leggendo il valore della variabile di ambiente PORT. Ad esempio, si chiama os.Getenv("PORT") in Go o System.getenv("PORT") in Java. Se si configura il proxy per inviare traffico a più processi dell'applicazione, è possibile configurare diverse proprietà dell'ambiente e utilizzare i relativi valori sia nella configurazione del proxy che nel codice dell'applicazione. Un'altra opzione è quella di passare il valore della porta al processo come argomento di comando nel Procfile. Per ulteriori informazioni, consulta Buildfile e Procfile.

Configurazione di nginx

Elastic Beanstalk usa nginx come proxy inverso predefinito per mappare l'applicazione al sistema di bilanciamento del carico Elastic Load Balancing. Elastic Beanstalk fornisce una configurazione nginx predefinita che puoi estendere o sostituire completamente a favore di quella personalizzata.

Nota

Quando aggiungi o modifichi un file di configurazione .conf nginx, assicurati di codificarlo come -8. UTF

Per estendere la configurazione nginx predefinita di Elastic Beanstalk, aggiungi i file di configurazione .confa una cartella denominata .platform/nginx/conf.d/ nel bundle di origine dell'applicazione. La configurazione nginx di Elastic Beanstalk include automaticamente i file .conf in questa cartella.

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

Per sostituire completamente la configurazione nginx predefinita di Elastic Beanstalk, includi una configurazione nel bundle di origine in .platform/nginx/nginx.conf:

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

Se sostituisci la configurazione nginx predefinita di Elastic Beanstalk, aggiungi al file nginx.conf la riga seguente per inserire le configurazioni di Elastic Beanstalk per Elastic Beanstalk ha migliorato la reportistica e il monitoraggio dello stato, le mappature automatiche delle applicazioni e i file statici.

include conf.d/elasticbeanstalk/*.conf;

Configurazione di Apache HTTPD

Le piattaforme TomcatPHP, Node.js e Python consentono di scegliere il server proxy HTTPD Apache come alternativa a nginx. Questo non è l'impostazione predefinita. L'esempio seguente configura Elastic Beanstalk per l'utilizzo di Apache. HTTPD

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

Puoi estendere la configurazione Apache predefinita di Elastic Beanstalk con file di configurazione personalizzati aggiuntivi. In alternativa, puoi sostituire completamente la configurazione Apache predefinita di Elastic Beanstalk.

Per estendere la configurazione Apache predefinita di Elastic Beanstalk, aggiungi i file di configurazione .conf a una cartella denominata .platform/httpd/conf.d nel bundle di origine dell'applicazione. La configurazione Apache di Elastic Beanstalk include automaticamente i file .conf in questa cartella.

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

Ad esempio, la configurazione Apache 2.4 seguente aggiunge un listener sulla porta 5000.

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

Per sostituire completamente la configurazione Apache predefinita di Elastic Beanstalk, includi una configurazione nel bundle di origine in .platform/httpd/conf/httpd.conf.

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

Se sostituisci la configurazione Apache predefinita di Elastic Beanstalk, aggiungi al file httpd.conf la riga seguente per inserire le configurazioni di Elastic Beanstalk per Elastic Beanstalk ha migliorato la reportistica e il monitoraggio dello stato, le mappature automatiche delle applicazioni e i file statici.

IncludeOptional conf.d/elasticbeanstalk/*.conf