Risoluzione dei problemi degli endpoint della rete CDN di Azure che restituiscono un codice stato 404Troubleshooting Azure CDN endpoints that return a 404 status code

Questo articolo consente di risolvere i problemi relativi agli endpoint di rete CDN di Azure che restituiscono codici di stato di risposta HTTP 404.This article enables you to troubleshoot issues with Azure Content Delivery Network (CDN) endpoints that return 404 HTTP response status codes.

Se in qualsiasi punto dell'articolo sono necessarie altre informazioni, è possibile contattare gli esperti di Azure nei forum MSDN e overflow dello stack relativi ad Azure.If you need more help at any point in this article, you can contact the Azure experts on the MSDN Azure and the Stack Overflow forums. In alternativa, è anche possibile archiviare un evento imprevisto di supporto tecnico di Azure.Alternatively, you can also file an Azure support incident. Accedere al sito del supporto di Azure e selezionare Richiesta di supporto.Go to the Azure Support site and select Get Support.

SintomoSymptom

Si crea un profilo di rete CDN e un endpoint, ma sembra che il contenuto non sia disponibile nella rete CDN.You've created a CDN profile and an endpoint, but your content doesn't seem to be available on the CDN. Gli utenti che provano ad accedere ai contenuti tramite l'URL della rete CDN ricevono un codice di stato HTTP 404.Users who attempt to access your content via the CDN URL receive an HTTP 404 status code.

CausaCause

Le cause possono essere diverse, ad esempio:There are several possible causes, including:

  • L'origine del file non è visibile alla rete CDN.The file's origin isn't visible to the CDN.
  • L'endpoint non è configurato correttamente e causa la ricerca in una posizione errata da parte della rete CDN.The endpoint is misconfigured, causing the CDN to look in the wrong place.
  • L'host rifiuta l'intestazione host dalla rete CDN.The host is rejecting the host header from the CDN.
  • L'endpoint non ha avuto tempo per propagarsi in tutta la rete CDN.The endpoint hasn't had time to propagate throughout the CDN.

Passaggi per la risoluzione dei problemiTroubleshooting steps

Importante

Dopo aver creato un endpoint della rete CDN, questo non sarà disponibile immediatamente per l'uso, perché la propagazione della registrazione nella rete CDN richiede tempo:After creating a CDN endpoint, it will not immediately be available for use, as it takes time for the registration to propagate through the CDN:

  • La propagazione dei profili della rete CDN Standard di Azure con tecnologia Microsoft viene in genere completata in dieci minuti.For Azure CDN Standard from Microsoft profiles, propagation usually completes in ten minutes.
  • La propagazione dei profili di rete CDN Standard di Azure con tecnologia Akamai viene in genere completata entro un minuto.For Azure CDN Standard from Akamai profiles, propagation usually completes within one minute.
  • La propagazione dei profili della rete CDN Standard di Azure con tecnologia Verizon e della rete CDN Premium di Azure con tecnologia Verizon viene in genere completata entro 90 minuti.For Azure CDN Standard from Verizon and Azure CDN Premium from Verizon profiles, propagation usually completes within 90 minutes.

Se si completa la procedura in questo documento e si ricevono comunque risposte 404, è consigliabile attendere alcune ore e controllare nuovamente prima di aprire un ticket di supporto.If you complete the steps in this document and you're still getting 404 responses, consider waiting a few hours to check again before opening a support ticket.

Controllare il file di origineCheck the origin file

In primo luogo, verificare che il file da memorizzare nella cache sia disponibile nel server di origine e accessibile pubblicamente In Internet.First, verify that the file to cache is available on the origin server and is publicly accessible on the internet. Il modo più rapido per eseguire questa operazione consiste nell'aprire un browser in una sessione privata o anonima e passare direttamente al file.The quickest way to do that is to open a browser in a private or incognito session and browse directly to the file. Digitare o incollare l'URL nella casella dell'indirizzo e verificare che restituisca il file desiderato.Type or paste the URL into the address box and verify that it results in the file you expect. Si supponga ad esempio che si disponga di un file in account di Archiviazione di Azure, accessibile all'indirizzo https://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt.For example, suppose you have a file in an Azure Storage account, accessible at https://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt. Se è stato possibile caricare il contenuto del file, il test è stato superato.If you can successfully load this file's contents, it passes the test.

Completamento della procedura

Avviso

Anche se questo è il modo più rapido e semplice per verificare che il file sia disponibile pubblicamente, per alcune configurazioni di rete dell'organizzazione potrebbe sembrare che il file sia disponibile pubblicamente mentre in realtà è visibile solo agli utenti della rete (anche se è ospitato in Azure).While this is the quickest and easiest way to verify your file is publicly available, some network configurations in your organization could make it appear that a file is publicly available when it is, in fact, only visible to users of your network (even if it's hosted in Azure). Per garantire che la situazione è diversa, eseguire il test sul file con un browser esterno, ad esempio in un dispositivo mobile non connesso alla rete dell'organizzazione, oppure in una macchina virtuale in Azure.To ensure that this isn't the case, test the file with an external browser, such as a mobile device that is not connected to your organization's network, or a virtual machine in Azure.

Controllare le impostazioni dell'origineCheck the origin settings

Dopo aver verificato che il file sia disponibile pubblicamente in Internet, verificare le impostazioni di origine.After you've verified the file is publicly available on the internet, verify your origin settings. Nel portale di Azure passare al profilo della rete CDN e selezionare l'endpoint di cui è necessario risolvere i problemi.In the Azure Portal, browse to your CDN profile and select the endpoint you're troubleshooting. Nella pagina Endpoint visualizzata selezionare l'origine.From the resulting Endpoint page, select the origin.

Pagina dell'endpoint con l'origine evidenziata

Viene visualizzata la pagina Origine.The Origin page appears.

Pagina di origine

Tipo di origine e nome hostOrigin type and hostname

Verificare che i valori nei campi Tipo di origine e Nome host dell'origine siano corretti.Verify that the values of the Origin type and Origin hostname are correct. Nell'esempio https://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt la parte di nome host dell'URL è cdndocdemo.blob.core.windows.net, che è corretta.In this example, https://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt, the hostname portion of the URL is cdndocdemo.blob.core.windows.net, which is correct. Poiché le origini di Archiviazione di Azure, App Web e servizio cloud usano un valore di un elenco a discesa per il campo Nome host dell'origine, l'ortografia errata non rappresenta un problema.Because Azure Storage, Web App, and Cloud Service origins use a drop-down list value for the Origin hostname field, incorrect spellings aren't an issue. Se si usa un'origine personalizzata, verificare tuttavia che il nome host sia stato digitato correttamente.However, if you use a custom origin, ensure that your hostname is spelled correctly.

Porte HTTP e HTTPSHTTP and HTTPS ports

Controllare le porte HTTP e HTTPS.Check your HTTP and HTTPS ports. Nella maggior parte dei casi, 80 e 443 sono corrette e non saranno necessarie modifiche.In most cases, 80 and 443 are correct, and you will require no changes. Tuttavia, se il server di origine è in ascolto su una porta diversa, dovrà essere rappresentata qui.However, if the origin server is listening on a different port, that will need to be represented here. Se non si è certi, visualizzare l'URL per il file di origine.If you're not sure, view the URL for your origin file. Le specifiche HTTP e HTTPS indicano le porte 80 e 443 per impostazione predefinita.The HTTP and HTTPS specifications use ports 80 and 443 as the defaults. Nell'URL di esempio https://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt non è specificata alcuna porta, quindi viene usato il valore predefinito 443 e le impostazioni sono corrette.In the example URL, https://cdndocdemo.blob.core.windows.net/publicblob/lorem.txt, a port is not specified, so the default of 443 is assumed and the settings are correct.

Si supponga tuttavia che l'URL per il file di origine sia testato in precedenza sia http://www.contoso.com:8080/file.txt.However, suppose the URL for the origin file that you tested earlier is http://www.contoso.com:8080/file.txt. Si noti la parte :8080 alla fine del segmento del nome host.Note the :8080 portion at the end of the hostname segment. Tale numero indica al browser di usare la porta 8080 per connettersi al server Web all'indirizzo www.contoso.com e di conseguenza è necessario immettere 8080 nel campo Porta HTTP.That number instructs the browser to use port 8080 to connect to the web server at www.contoso.com, therefore you'll need to enter 8080 in the HTTP port field. È importante notare che queste impostazioni della porta hanno effetto solo sulla porta usata dall'endpoint per recuperare informazioni dall'origine.It's important to note that these port settings affect only what port the endpoint uses to retrieve information from the origin.

Nota

Gli endpoint di rete CDN Standard di Azure con tecnologia Akamai non consentono di usare l'intera gamma di porte TCP per le origini.Azure CDN Standard from Akamai endpoints do not allow the full TCP port range for origins. Per un elenco delle porte di origine non consentite, vedere l'articolo relativo ai Azure CDN from Akamai Allowed Origin Ports(Porte di origine consentite in Rete CDN di Azure da Akamai).For a list of origin ports that are not allowed, see Azure CDN from Akamai Allowed Origin Ports.

Controllare le impostazioni dell'endpointCheck the endpoint settings

Nella pagina Endpoint selezionare il pulsante Configura.On the Endpoint page, select the Configure button.

Pagina Endpoint con il pulsante Configura evidenziato

Viene visualizzata la pagina Configura dell'endpoint di rete CDN.The CDN endpoint Configure page appears.

Pagina Configura

ProtocolliProtocols

In Protocolliverificare che sia selezionato il protocollo usato dai client.For Protocols, verify that the protocol being used by the clients is selected. Lo stesso protocollo usato dal client è quello usato per accedere all'origine, quindi è importante che le porte di origine siano configurate correttamente nella sezione precedente.Because the same protocol used by the client is the one used to access the origin, it's important to have the origin ports configured correctly in the previous section. L'endpoint di rete CDN è in ascolto solo sulle porte HTTP e HTTPS (80 e 443) predefinite, indipendentemente dalle porte di origine.The CDN endpoint listens only on the default HTTP and HTTPS ports (80 and 443), regardless of the origin ports.

Torniamo all'esempio con http://www.contoso.com:8080/file.txt.Let's return to our hypothetical example with http://www.contoso.com:8080/file.txt. Come indicato in precedenza, Contoso ha specificato 8080 come porta HTTP, ma si supponga che sia stata specificata la porta 44300 come porta HTTPS.As you'll remember, Contoso specified 8080 as their HTTP port, but let's also assume they specified 44300 as their HTTPS port. Se è stato creato un endpoint denominato contoso, il nome host dell'endpoint di rete CDN sarebbe contoso.azureedge.net.If they created an endpoint named contoso, their CDN endpoint hostname would be contoso.azureedge.net. Una richiesta per http://contoso.azureedge.net/file.txt è una richiesta HTTP, pertanto l'endpoint userebbe HTTP sulla porta 8080 per eseguire il recupero dall'origine.A request for http://contoso.azureedge.net/file.txt is an HTTP request, so the endpoint would use HTTP on port 8080 to retrieve it from the origin. Una richiesta protetta su HTTPS, ovvero https://contoso.azureedge.net/file.txt, indicherebbe all'endpoint di usare HTTPS sulla porta 44300 quando recupera il file dall'origine.A secure request over HTTPS, https://contoso.azureedge.net/file.txt, would cause the endpoint to use HTTPS on port 44300 when retrieving the file from the origin.

Intestazione host di origineOrigin host header

L'opzione Intestazione host di origine è il valore dell'intestazione host inviato all'origine con ogni richiesta.The Origin host header is the host header value sent to the origin with each request. Nella maggior parte dei casi deve essere identico al valore di Nome host dell'origine verificato in precedenza.In most cases, this should be the same as the Origin hostname we verified earlier. Un valore non corretto in questo campo non causa in genere stati 404, ma può causare altri stati 4xx, a seconda di quanto previsto dall'origine.An incorrect value in this field won't generally cause 404 statuses, but is likely to cause other 4xx statuses, depending on what the origin expects.

Percorso dell'origineOrigin path

Infine è necessario verificare il Percorso dell'origine.Lastly, we should verify our Origin path. Per impostazione predefinita è vuoto.By default this is blank. Usare questo campo solo se si vuole limitare l'ambito delle risorse ospitate dall'origine da rendere disponibili nella rete CDN.You should only use this field if you want to narrow the scope of the origin-hosted resources you want to make available on the CDN.

Nell'endpoint di esempio tutte le risorse dell'account di archiviazione dovevano essere disponibili e di conseguenza il campo Percorso dell'origine è stato lasciato vuoto.In the example endpoint, we wanted all resources on the storage account to be available, so Origin path was left blank. Ciò significa che una richiesta a https://cdndocdemo.azureedge.net/publicblob/lorem.txt restituisce una connessione dall'endpoint a cdndocdemo.core.windows.net che richiede /publicblob/lorem.txt.This means that a request to https://cdndocdemo.azureedge.net/publicblob/lorem.txt results in a connection from the endpoint to cdndocdemo.core.windows.net that requests /publicblob/lorem.txt. In modo analogo, una richiesta per https://cdndocdemo.azureedge.net/donotcache/status.png comporta una richiesta /donotcache/status.png da parte dell'endpoint all'origine.Likewise, a request for https://cdndocdemo.azureedge.net/donotcache/status.png results in the endpoint requesting /donotcache/status.png from the origin.

Cosa accade se non si intende usare la rete CDN per ogni percorso dell'origine?But what if you don't want to use the CDN for every path on your origin? Supponiamo ad esempio che si desideri esporre il percorso publicblob.Say you only wanted to expose the publicblob path. Se si immette /publicblob nel campo Percorso dell'origine, l'endpoint inserirà /publicblob prima di ogni richiesta inviata all'origine.If we enter /publicblob in the Origin path field, that will cause the endpoint to insert /publicblob before every request being made to the origin. Ciò significa che la richiesta per https://cdndocdemo.azureedge.net/publicblob/lorem.txt accetta la parte di richiesta dell'URL, ovvero /publicblob/lorem.txt, e aggiunge /publicblob all'inizio.This means that the request for https://cdndocdemo.azureedge.net/publicblob/lorem.txt will now actually take the request portion of the URL, /publicblob/lorem.txt, and append /publicblob to the beginning. Viene quindi eseguita una richiesta per /publicblob/publicblob/lorem.txt all'origine.This results in a request for /publicblob/publicblob/lorem.txt from the origin. Se tale percorso non viene risolto in un file effettivo, l'origine restituirà uno stato 404.If that path doesn't resolve to an actual file, the origin will return a 404 status. L'URL corretto per il recupero del file lorem.txt in questo esempio sarebbe https://cdndocdemo.azureedge.net/lorem.txt.The correct URL to retrieve lorem.txt in this example would actually be https://cdndocdemo.azureedge.net/lorem.txt. Si noti che non si include il percorso /publicblob perché la parte di richiesta dell'URL è /lorem.txt e l'endpoint aggiunge /publicblob, che determina l'invio della richiesta di /publicblob/lorem.txt all'origine.Note that we don't include the /publicblob path at all, because the request portion of the URL is /lorem.txt and the endpoint adds /publicblob, resulting in /publicblob/lorem.txt being the request passed to the origin.