HTTPCodice di stato 502 (Bad Gateway) - Amazon CloudFront

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.

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'Hostintestazione 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-Cacheintestazione su. Error from cloudfront

Per determinare se i nomi di dominio nel certificato corrispondono al dominio di origine nella distribuzione o nell'Hostintestazione, 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 CNcampo) 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'-servernameopzione 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 Digita il nome di dominio dell'origine nel campo Hostname (Nome host), quindi scegli Submit (Invia). Esamina i campi Common names (Nomi comuni) e Alternative names (Nomi alternativi) del test per sapere se corrispondono al nome di dominio dell'origine. Al termine del test, trova le sezioni Protocols (Protocolli) e Cipher Suites (Pacchetti crittografia) nei risultati del test per sapere quali crittografie o protocolli sono supportati dalla tua origine. Confrontali con l'elenco in Protocolli e cifrari supportati tra CloudFront e l'origine.

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 o nslookup:

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 502? HTTP .

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