Configurazione del server proxy dell'ambiente Tomcat - 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 server proxy dell'ambiente Tomcat

La piattaforma Tomcat utilizza nginx (impostazione predefinita) o Apache HTTP Server come proxy inverso per inoltrare le richieste dalla porta 80 dell'istanza al container Web Tomcat in ascolto sulla porta 8080. Elastic Beanstalk fornisce una configurazione proxy predefinita che puoi estendere o sostituire completamente a favore di quella personalizzata.

Configurazione del server proxy sulla versione della piattaforma

Tutte le piattaforme AL2023/AL2 supportano una funzionalità di configurazione proxy uniforme. Per maggiori informazioni sulla configurazione del server proxy nelle versioni della piattaforma che eseguono AL2023/AL2, espandi la sezione Configurazione proxy inverso in Estensione delle piattaforme Elastic Beanstalk Linux.

Se il tuo ambiente Tomcat di Elastic Beanstalk utilizza una versione della piattaforma AMI Amazon Linux (precedente Amazon Linux 2), leggi le informazioni aggiuntive presenti in questa sezione.

Note
  • Le informazioni contenute in questo argomento si applicano solo ai rami della piattaforma basati su Amazon Linux AMI (AL1). Le ramificazioni della piattaforma AL2023/AL2 non sono compatibili con le precedenti versioni della piattaforma AMI Amazon Linux (AL1) e richiedono diverse impostazioni di configurazione.

  • Il 18 luglio 2022 Elastic Beanstalk ha impostato lo stato di tutte le ramificazioni della piattaforma sull'AMI Amazon Linux (AL1) su retired (ritirato). Per ulteriori informazioni sulla migrazione a una ramificazione della piattaforma Amazon Linux 2023 attuale e completamente supportata, consulta Migrazione dell'applicazione Elastic Beanstalk Linux ad Amazon Linux 2023 o Amazon Linux 2.

Le versioni della piattaforma Tomcat basate su AMI Amazon Linux (precedente ad Amazon Linux 2) utilizzano per impostazione predefinita Apache 2.4 per il proxy. Puoi scegliere di usare Apache 2.2 o nginx includendo un file di configurazione nel codice sorgente. L'esempio seguente configura Elastic Beanstalk per l'uso di nginx.

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

Se l'applicazione è stata sviluppata per Apache 2.2, leggi questa sezione per informazioni sulla migrazione ad Apache 2.4.

A partire dalle configurazioni della piattaforma Tomcat versione 3.0.0, rese disponibili con l'aggiornamento della piattaforma Java con Tomcat del 24 maggio 2018, Apache 2.4 è il proxy predefinito della piattaforma Tomcat. I file .conf di Apache 2.4 sono in gran parte, ma non interamente, compatibili con quelli della versione Apache 2.2 precedente. Elastic Beanstalk include file .conf predefiniti che funzionano correttamente con ogni versione di Apache. Se la tua applicazione non personalizza la configurazione di Apache, come descritto in Estensione e sostituzione della configurazione Apache predefinita: Amazon Linux AMI (AL1), dovrebbe supportare la migrazione ad Apache 2.4 senza problemi.

Se l'applicazione estende o sostituisce la configurazione di Apache, potrebbe essere necessario effettuare alcune modifiche per migrare ad Apache 2.4. Per ulteriori informazioni, consulta la pagina relativa all'aggiornamento alla versione 2.4 dalla 2.2 sul sito Apache Software Foundation. Finché non esegui la migrazione ad Apache 2.4, come misura temporanea puoi scegliere di usare Apache 2.2 con l'applicazione includendo il file di configurazione seguente nel codice sorgente.

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

Per una soluzione rapida, puoi anche selezionare il server proxy nella console Elastic Beanstalk.

Per selezionare il proxy nell'ambiente Tomcat nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e nell'elenco Regions (Regioni) seleziona la tua Regione AWS.

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), scegli Edit (Modifica).

  5. In Proxy server (Server proxy) scegli Apache 2.2 (deprecated).

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Selezione del proxy per un ambiente Tomcat nella categoria di configurazione software della console Elastic Beanstalk

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.

Nota

Per estendere la configurazione Apache predefinita di Elastic Beanstalk, aggiungi i file di configurazione .conf a una cartella denominata .ebextensions/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 | -- conf.d | -- myconf.conf | -- ssl.conf -- index.jsp

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

Esempio .ebextensions/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 .ebextensions/httpd/conf/httpd.conf.

~/workspace/my-app/ |-- .ebextensions | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp

Se vuoi sostituire completamente la configurazione Apache di Elastic Beanstalk, aggiungi le righe seguenti a httpd.conf per ottenere le configurazioni di Elastic Beanstalk per Monitoraggio e reporting dello stato avanzato, la compressione delle risposte e i file statici.

IncludeOptional conf.d/*.conf IncludeOptional conf.d/elasticbeanstalk/*.conf

Se l'ambiente usa Apache 2.2 come proxy, sostituisci le direttive IncludeOptional con Include. Per informazioni dettagliate sul funzionamento di queste due direttive nelle due versioni di Apache, consulta le pagine relative a Include in Apache 2.4, IncludeOptional in Apache 2.4e Include in Apache 2.2.

Nota

Per sostituire il listener predefinito sulla porta 80, includi un file denominato 00_application.conf in .ebextensions/httpd/conf.d/elasticbeanstalk/ per sovrascrivere la configurazione di Elastic Beanstalk.

Per un esempio di utilizzo, osserva il file di configurazione predefinito di Elastic Beanstalk in /etc/httpd/conf/httpd.conf in un'istanza nell'ambiente. Tutti i file della cartella .ebextensions/httpd nel bundle di origine vengono copiati in /etc/httpd durante le distribuzioni.

Per estendere la configurazione nginx predefinita di Elastic Beanstalk, aggiungi file di configurazione .conf in una cartella denominata .ebextensions/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/ |-- .ebextensions | `-- nginx | `-- conf.d | |-- elasticbeanstalk | | `-- my-server-conf.conf | `-- my-http-conf.conf `-- index.jsp

I file con estensione .conf nella cartella conf.d vengono inclusi nel blocco http della configurazione predefinita. I file nella cartella conf.d/elasticbeanstalk vengono inclusi nel blocco server all'interno del blocco http.

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

~/workspace/my-app/ |-- .ebextensions | `-- nginx | `-- nginx.conf `-- index.jsp
Note
  • Se sostituisci la configurazione nginx di Elastic Beanstalk, aggiungi la riga seguente al blocco server della configurazione per ottenere le configurazioni di Elastic Beanstalk per il listener della porta 80, la compressione delle risposte e i file statici.

    include conf.d/elasticbeanstalk/*.conf;
  • Per sostituire il listener predefinito sulla porta 80, includi un file denominato 00_application.conf in .ebextensions/nginx/conf.d/elasticbeanstalk/ per sovrascrivere la configurazione di Elastic Beanstalk.

  • Includi anche la riga seguente nel blocco http della configurazione per ottenere le configurazioni di Elastic Beanstalk per Monitoraggio e reporting dello stato avanzato e la registrazione.

    include conf.d/*.conf;

Per un esempio di utilizzo, osserva il file di configurazione predefinito di Elastic Beanstalk in /etc/nginx/nginx.conf in un'istanza nell'ambiente. Tutti i file della cartella .ebextensions/nginx nel bundle di origine vengono copiati in /etc/nginx durante le distribuzioni.