Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
In che modo è possibile reindirizzare il traffico HTTP a HTTPS sul mio Classic Load Balancer?
Sto utilizzando listener HTTP e HTTPS sul mio Classic Load Balancer. Il mio Classic Load Balancer scarica SSL e la connessione di backend è in ascolto su una singola porta HTTP (porta 80). Quando provo a reindirizzare il traffico da HTTP a HTTPS (porta 443), ricevo l'errore "ERR_TOO_MANY_REDIRECTS". Come posso risolvere questo errore senza cambiare il mio ascoltatore di backend sulla porta 443?
Breve descrizione
I Classic Load Balancer non possono reindirizzare il traffico HTTP a HTTPS di default. Invece, configura le regole di riscrittura per le istanze dei server Web dietro il Classic Load Balancer.
Devi configurare le regole di riscrittura per utilizzare l'intestazione X-Forwarded-Proto e reindirizzare solo i client HTTP. In caso contrario, le regole di riscrittura possono creare un ciclo infinito di richieste di reindirizzamento tra Classic Load Balancer e le istanze dietro di esso. Tale ciclo genera l'errore "ERR_TOO_MANY_REDIRECTS".
Nota: Gli Application Load Balancer possono reindirizzare il traffico HTTP a HTTPS utilizzando operazioni di reindirizzamento. Migra il tuo Classic Load Balancer a un Application Load Balancer per utilizzare queste caratteristiche.
Risoluzione
Esamina le seguenti configurazioni di esempio per i server Web Apache, NGINX e IIS. Configura i server web dietro Classic Load Balancer per utilizzare l’intestazioneX-Forwarded-Proto per indirizzare il traffico in base al fatto che i client utilizzino HTTP o HTTPS. Assicurati di aggiungere regole di riscrittura ai tuoi server Web che:
- Reindirizzano i client utilizzando HTTP a un URL HTTPS
- Servono i client utilizzando direttamente HTTPS
Importante: Le seguenti configurazioni sono fornite solo come esempi. Modificali in base alla tua configurazione e al caso d'uso.
Server Apache: metodo file host virtuale (best practice)
1. Apri il file di configurazione di Apache. Le possibili posizioni includono /etc/httpd/conf/httpd.conf (Apache 2/httpd), /etc/apache2/sites-enabled/ (Apache 2.4), or /etc/apache2/apache2.conf (Apache su Ubuntu).
2. Aggiungi una regola di riscrittura a VirtualHost sezione del file di configurazione simile alla seguente:
<VirtualHost *:80> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] </VirtualHost>
3. Salva il file di configurazione di Apache.
4. Riavvia Apache.
Server Apache: metodo file .htaccess (non una best practice)
Attenzione: è una best practice utilizzare il metodo del file dell'host virtuale Apache descritto nella sezione precedente. Secondo le Linee guida per i file Apache .htaccess, usa il file .htaccess solo se non hai accesso al file di configurazione principale di Apache.
1. Apri il file di configurazione di Apache. Le possibili posizioni includono /etc/httpd/conf/httpd.conf (Apache 2/httpd) o /etc/apache2/sites-enabled/ (Apache 2.4).
2. Modifica la direttiva della Directory per abilitare .htaccess come segue:
<Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
3. Salva il file di configurazione di Apache.
4. Apri il tuo file**.htaccess**.
5. Aggiungi una regola di riscrittura simile alla seguente:
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
6. Salva il tuo file**.htaccess**.
7. Riavvia Apache.
Server NGINX
Nota: Questa risoluzione si applica a NGINX 1.10.3 (Ubuntu) e NGINX 1.12.1 (Amazon Linux).
1. Apri il tuo file di configurazione NGINX (nginx.conf).
2. Aggiungi la seguente regola di riscrittura. Assicurati di modificare la regola di riscrittura per la tua configurazione.
server { listen 80; server_name _; if ($http_x_forwarded_proto = 'http'){ return 301 https://$host$request_uri; } }
3. Riavvia NGINX.
Server IIS
Nota: Questa risoluzione si applica a Microsoft Windows Server 2012 R2 e 2016 Base.
1. Installa il Modulo di riscrittura IIS URL da Microsoft.
2. Apri il tuo fileweb.config.
3. Aggiungi la seguente regola di riscrittura alla sezione <system.webServer> . Assicurati di modificare la regola di riscrittura per la tua configurazione specifica.
<rewrite> <rules> <rule name="Rewrite HTTP to HTTPS" stopProcessing="true"> <match url="^(.*)$"/> <conditions logicalGrouping="MatchAny"> <add input="{HTTP_X_FORWARDED_PROTO}" pattern="^http$"/> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/> </rule> </rules> </rewrite>
4. Salva il tuo file web.config.
5. Apri Gestore IIS.
6. Aggiorna il sito Web di default.
7. Verifica che la tua nuova regola di riscrittura appaia nella sezioneRiscrivi URL.
8. Riavvia il tuo sito Web.
9. Verifica che il tuo reindirizzamento funzioni.
Informazioni correlate
Video correlati


Contenuto pertinente
- AWS UFFICIALEAggiornata 2 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 3 anni fa