

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
<a name="platforms-linux-extend.proxy"></a>

Tutte le versioni della piattaforma Amazon Linux 2 e Amazon Linux 2023 usano nginx come server proxy inverso predefinito. Le piattaforme Tomcat, Node.js, PHP e Python supportano anche HTTPD di 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**  
Sulle versioni della piattaforma AMI 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](concepts-all-platforms.md) in questa guida.

Elastic Beanstalk configura il server proxy nelle istanze dell'ambiente per inoltrare il traffico Web all'applicazione Web principale sull'URL root 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](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) 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](ebextensions-optionsettings.md).

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](platforms-linux-extend.build-proc.md).

## Configurazione di nginx
<a name="platforms-linux-extend.proxy.nginx"></a>

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 nginx `.conf`, assicurati di codificarlo come UTF-8.

Per estendere la configurazione nginx predefinita di Elastic Beanstalk, aggiungi i file di configurazione `.conf`a 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
```

I file di configurazione in `.platform/nginx/conf.d/` sono inclusi nel `http` blocco della configurazione di nginx. Usa questa posizione per le configurazioni che si applicano a livello globale.

Per estendere la configurazione predefinita del blocco `server` nginx, `.conf` aggiungi i file di configurazione a una cartella `.platform/nginx/conf.d/elasticbeanstalk/` denominata nel pacchetto sorgente dell'applicazione. La configurazione di Elastic Beanstalk nginx include i file in questa cartella all'interno del blocco`.conf`. `server`

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

Utilizza questa posizione per aggiungere configurazioni specifiche del server, come blocchi di posizione aggiuntivi, pagine di errore personalizzate o direttive a livello di server. L'esempio seguente aggiunge un blocco di posizione personalizzato.

**Example . platform/nginx/conf.d/elasticbeanstalk/server.conf**  

```
location /test {
    return 200 "Hello World!";
    add_header Content-Type text/plain;
}
```

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 [Reportistica e monitoraggio dello stato di salute migliorati in Elastic Beanstalk](health-enhanced.md), le mappature automatiche delle applicazioni e i file statici.

```
 include conf.d/elasticbeanstalk/*.conf;
```

## Configurare HTTPD di Apache
<a name="platforms-linux-extend.proxy.httpd"></a>

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

**Example .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.  

**Example . 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
```
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 [Reportistica e monitoraggio dello stato di salute migliorati in Elastic Beanstalk](health-enhanced.md), le mappature automatiche delle applicazioni e i file statici.  

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