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à.
HTTPCodice di stato 502 (Bad Gateway)
CloudFrontrestituisce un codice di stato HTTP 502 (Bad Gateway) quando CloudFront non è stato in grado di servire l'oggetto richiesto perché non è riuscito a connettersi al server di origine.
Se utilizzi Lambda @Edge, il problema potrebbe essere un errore di convalida Lambda. Se ricevi un errore HTTP 502 con il codice di NonS3OriginDnsError
errore, probabilmente c'è un problema di DNS configurazione che CloudFront impedisce la connessione all'origine.
Argomenti
- SSL/errore di TLS negoziazione tra CloudFront e un server di origine personalizzato
- L'origine non risponde con crittografie/protocolli supportati
- SSL/il TLS certificato di origine è scaduto, non valido, autofirmato o la catena di certificati è nell'ordine sbagliato
- L'origine non risponde sulle porte specificate nelle impostazioni dell'origine
- Errore di convalida Lambda
- CloudFront errore di convalida della funzione
- DNSerrore (NonS3OriginDnsError)
- Errore 502 di origine di Application Load Balancer
- APIErrore 502 di origine del gateway
SSL/errore di TLS negoziazione tra CloudFront e un server di origine personalizzato
Se si utilizza un'origine personalizzata che richiede un'origine HTTPS compresa tra CloudFront e l'origine, i nomi di dominio non corrispondenti potrebbero causare errori. Il TLS certificatoSSL/relativo all'origine deve includere un nome di dominio che corrisponda al dominio di origine specificato per la CloudFront distribuzione o all'Host
intestazione della richiesta di origine.
Se i nomi di dominio non corrispondono, l'TLShandshakeSSL/ha esito negativo e CloudFront restituisce un codice di HTTP stato 502 (Bad Gateway) e imposta l'X-Cache
intestazione su. Error from cloudfront
Per determinare se i nomi di dominio nel certificato corrispondono al dominio di origine nella distribuzione o nell'Host
intestazione, puoi utilizzare un correttore online SSL o Open. SSL Se i nomi di dominio non corrispondono, hai due opzioni:
-
Ottieni un nuovo TLS certificatoSSL/che includa i nomi di dominio applicabili.
Se usi AWS Certificate Manager (ACM), consulta Richiesta di un certificato pubblico nella Guida per l'AWS Certificate Manager utente per richiedere un nuovo certificato.
-
Modifica la configurazione di distribuzione in modo che CloudFront non tenti più di utilizzarla SSL per connetterti con la tua origine.
SSLChecker online
Per trovare uno strumento SSL di test, cerca su Internet «online ssl checker». In genere, si specifica il nome del dominio e lo strumento restituisce una serie di informazioni sul certificatoSSL/TLS. Conferma che il certificato contiene il tuo nome di dominio nel campo Nomi comuni o Nomi alternativi oggetto.
Apri SSL
Per facilitare la risoluzione degli errori HTTP 502 di CloudFront, puoi usare Open SSL per provare a creare una configurazione. SSL/TLS connection to your origin server. If OpenSSL is not able
to make a connection, that can indicate a problem with your origin server's
SSL/TLS Se Open SSL è in grado di stabilire una connessione, restituisce informazioni sul certificato del server di origine, incluso il nome comune (Subject CN
campo) e il nome alternativo del soggetto (campo) del certificato. Subject Alternative Name
Usa il seguente SSL comando Open per testare la connessione al tuo server di origine (replace) origin domain
con il nome di dominio del server di origine, ad esempio example.com):
openssl s_client -connect
origin domain
name
:443
Se sono vere le seguenti condizioni:
-
Il tuo server di origine supporta più nomi di dominio con più certificati/SSLTLS
-
La distribuzione è configurata per inoltrare l'intestazione
Host
all'origine
Quindi aggiungi l'-servername
opzione al SSL comando Apri, come nell'esempio seguente (replace CNAME
con CNAME quello configurato nella tua distribuzione):
openssl s_client -connect
origin domain
name
:443 -servername
CNAME
L'origine non risponde con crittografie/protocolli supportati
CloudFront si connette ai server di origine utilizzando cifrari e protocolli. Per un elenco dei cifrari e dei protocolli supportati CloudFront , vedere. Protocolli e cifrari supportati tra CloudFront e l'origine Se la tua origine non risponde con uno di questi codici o protocolli nello TLS scambioSSL/, CloudFront non riesce a connettersi. Puoi verificare che la tua origine supporti i codici e i protocolli utilizzando uno strumento online come Labs. SSL
SSL/il TLS certificato di origine è scaduto, non valido, autofirmato o la catena di certificati è nell'ordine sbagliato
Se il server di origine restituisce quanto segue, CloudFront interrompe la TCP connessione, restituisce il codice di HTTP stato 502 (Bad Gateway) e imposta l'intestazione su: X-Cache
Error from cloudfront
-
Certificato scaduto
-
Certificato non valido
-
Certificato autofirmato
-
Ordine della catena di certificati non corretto
Nota
Se l'intera catena di certificati, incluso il certificato intermedio, non è presente, la connessione viene interrotta CloudFront . TCP
Per informazioni sull'installazione di un TLS certificatoSSL/sul server di origine personalizzato, consultaRichiedi HTTPS per la comunicazione tra CloudFront e la tua origine personalizzata.
L'origine non risponde sulle porte specificate nelle impostazioni dell'origine
Quando crei un'origine sulla tua CloudFront distribuzione, puoi impostare le porte che CloudFront si connettono all'origine con for HTTP and HTTPS traffic. Per impostazione predefinita, sono TCP 80/443. Hai comunque la possibilità di modificare queste porte. Se la tua origine rifiuta il traffico su queste porte per qualsiasi motivo, o se il tuo server di backend non risponde sulle porte, non riuscirà a connettersi. CloudFront
Per risolvere questi problemi, verifica tutti i firewall in esecuzione nell'infrastruttura e assicurati che non blocchino gli intervalli di indirizzi IP. Per ulteriori informazioni, consulta gli intervalli di indirizzi AWS IP nella Amazon VPC User Guide. Inoltre, verifica se il server Web è in esecuzione sull'origine.
Errore di convalida Lambda
Se utilizzi Lambda @Edge, un codice di stato HTTP 502 può indicare che la risposta della funzione Lambda è stata formata in modo errato o include contenuti non validi. Per ulteriori informazioni sulla risoluzione di errori Lambda@Edge, consulta Test ed esegui il debug delle funzioni Lambda @Edge.
CloudFront errore di convalida della funzione
Se utilizzi CloudFront funzioni, un codice di stato HTTP 502 può indicare che la CloudFront funzione sta tentando di aggiungere, eliminare o modificare un'intestazione di sola lettura. Questo errore non viene visualizzato durante il test, ma verrà visualizzato dopo aver distribuito la funzione ed eseguito la richiesta. Per risolvere questo errore, controlla e aggiorna la tua CloudFront funzione. Per ulteriori informazioni, consulta Funzioni di aggiornamento.
DNSerrore (NonS3OriginDnsError
)
Un errore HTTP 502 con il codice NonS3OriginDnsError
di errore indica che esiste un problema di DNS configurazione che CloudFront impedisce la connessione all'origine. Se ricevi questo errore da CloudFront, assicurati che la DNS configurazione dell'origine sia corretta e funzionante.
Quando CloudFront riceve una richiesta per un oggetto scaduto o non presente nella cache, invia una richiesta all'origine per ottenere l'oggetto. Per effettuare una richiesta corretta all'origine, CloudFront esegue una DNS risoluzione sul dominio di origine. Se il DNS servizio per il tuo dominio presenta problemi, non CloudFront riesci a risolvere il nome di dominio per ottenere l'indirizzo IP, il che genera un errore HTTP 502 (NonS3OriginDnsError
). Per risolvere questo problema, contatta il tuo DNS provider o, se utilizzi Amazon Route 53, consulta Perché non riesco ad accedere al mio sito Web che utilizza i DNS servizi Route 53?
Per risolvere il problema, accertati inoltre che i server dei nomi autorevoli del dominio root o dell'apex di zona dell'origine (ad esempio example.com
) funzionino correttamente. Puoi usare i seguenti comandi per trovare i server dei nomi per l'origine apex, con uno strumento come dig
dig
OriginAPEXDomainName
NS +short
nslookup -query=NS
OriginAPEXDomainName
Quando disponi dei nomi del server dei nomi, utilizza i comandi seguenti per eseguire una query sul nome di dominio dell'origine in base a tali nomi per assicurarti che ognuno risponda:
dig
OriginDomainName
@NameServer
nslookup
OriginDomainName
NameServer
Importante
Assicurati di eseguire questa DNS risoluzione dei problemi utilizzando un computer connesso alla rete Internet pubblica. CloudFront risolve il dominio di origine utilizzando public DNS on Internet, quindi è importante risolvere i problemi in un contesto simile.
Se l'origine è un sottodominio la cui DNS autorità è delegata a un name server diverso dal dominio principale, assicurati che i record name server (NS
) e start of authority (SOA
) siano configurati correttamente per il sottodominio. È possibile verificare la presenza di questi record utilizzando comandi simili agli esempi precedenti.
Per ulteriori informazioniDNS, consulta i concetti di Domain Name System (DNS) nella documentazione di Amazon Route 53.
Errore 502 di origine di Application Load Balancer
Se utilizzi Application Load Balancer come origine e ricevi un errore 502, vedi Come si risolvono gli errori di Application Load Balancer
APIErrore 502 di origine del gateway
Se utilizzi API Gateway e ricevi un errore 502, vedi Come posso risolvere gli errori HTTP 502 da API Gateway con l'integrazione del proxy REST APIs Lambda