Sdílet prostřednictvím


Hostování statických webů ve službě Azure Storage

Azure Blob Storage je ideální pro ukládání velkých objemů nestrukturovaných dat, jako je text, obrázky a videa. Vzhledem k tomu, že úložiště objektů blob poskytuje také podporu statického hostování webů, je to skvělá volba v případech, kdy k vykreslování obsahu nepotřebujete webový server. I když jste omezeni na hostování statického obsahu, jako jsou HTML, CSS, JavaScript a obrazové soubory, můžete používat bezserverové architektury, včetně Azure Functions a dalších služeb PaaS (Platform as a Service).

Statické weby mají určitá omezení. Pokud například chcete nakonfigurovat hlavičky, budete muset použít Azure Content Delivery Network (Azure CDN). V rámci samotné funkce statického webu není možné konfigurovat hlavičky. Také se nepodporuje autentizace a autorizace.

Pokud jsou tyto funkce pro váš scénář důležité, zvažte použití azure Static Web Apps. Je to skvělá alternativa ke statickým webům a je vhodná i v případech, kdy k vykreslení obsahu nepotřebujete webový server. Můžete nakonfigurovat hlavičky a ověřování AuthN / AuthZ je plně podporováno. Azure Static Web Apps také poskytuje plně spravovaný pracovní postup kontinuální integrace a nepřetržitého doručování (CI/CD) ze zdroje na GitHubu do globálního nasazení.

Pokud potřebujete webový server k vykreslování obsahu, můžete použít Azure App Service.

Požadavky

Nastavení statického webu

Funkce hostování statických webů je nakonfigurovaná v rámci účtu úložiště a ve výchozím nastavení není povolená. Pokud chcete povolit hostování statických webů, vyberte účet úložiště. V levém navigačním podokně vyberte Statický web ze skupiny Správa dat a poté vyberte Povoleno. Zadejte název názvu indexového dokumentu. Volitelně můžete zadat cestu k vlastní stránce 404. Nakonec vyberte Uložit a uložte změny konfigurace.

Snímek obrazovky zobrazující umístění použitá k povolení hostování statických webových stránek v účtu úložiště.

Kontejner úložiště objektů blob s názvem $web se pro vás vytvoří v rámci účtu úložiště, pokud ještě neexistuje. Přidejte soubory svého webu do kontejneru $web , aby byly přístupné prostřednictvím primárního koncového bodu statického webu.

Snímek obrazovky zobrazující, jak povolit hostování statických webových stránek v účtu úložiště pomocí kontejneru úložiště objektů blob.

Soubory v kontejneru $web rozlišují velká a malá písmena, jsou obsluhovány prostřednictvím anonymních žádostí o přístup a jsou k dispozici pouze prostřednictvím operací čtení.

Podrobné pokyny najdete v tématu Hostování statického webu ve službě Azure Storage.

Nahrávání obsahu

K nahrání obsahu do kontejneru $web můžete použít kterýkoli z těchto nástrojů:

Prohlížení obsahu

Uživatelé mohou zobrazit obsah webu z prohlížeče pomocí veřejné adresy URL webu. Adresu URL můžete najít pomocí Azure Portal, Azure CLI nebo PowerShellu. Viz Vyhledání adresy URL webu.

Indexový dokument, který určíte při povolení statického hostování webu, se zobrazí, když uživatelé otevřou web a nezadají konkrétní soubor (například: https://contosostaticsite.z22.web.core.windows.net).

Pokud server vrátí chybu 404 a při povolení webu jste nezadali dokument s chybou, vrátí se uživateli výchozí stránka 404.

Poznámka:

Podpora sdílení prostředků mezi zdroji (CORS) pro Azure Storage není podporována u statického webu.

Sekundární koncové body

Pokud nastavíte redundanci v sekundární oblasti, můžete k obsahu webu přistupovat také pomocí sekundárního koncového bodu. Data jsou replikována do sekundárních oblastí asynchronně. Proto soubory, které jsou k dispozici v sekundárním koncovém bodu, nejsou vždy synchronizovány se soubory, které jsou k dispozici v primárním koncovém bodu.

Dopad nastavení úrovně přístupu na webový kontejner

Úroveň anonymního přístupu kontejneru $web můžete upravit, ale tato změna nemá žádný vliv na primární koncový bod statického webu, protože tyto soubory jsou obsluhovány prostřednictvím anonymních žádostí o přístup. To znamená veřejný (jen pro čtení) přístup ke všem souborům.

I když to nemá vliv na primární koncový bod statického webu, změna úrovně anonymního přístupu má vliv na primární koncový bod služby Blob Service.

Pokud například změníte úroveň anonymního přístupu kontejneru $web z Privátní (bez anonymního přístupu) na Blob (anonymní přístup pro čtení pouze pro objekty blob), úroveň anonymního přístupu ke koncovému bodu https://contosostaticsite.z22.web.core.windows.net/index.html primárního statického webu se nezmění.

Anonymní přístup k primárnímu koncovému bodu https://contosostaticsite.blob.core.windows.net/$web/index.html služby Blob Service se ale změní a umožní uživatelům otevřít tento soubor pomocí jednoho z těchto dvou koncových bodů.

Zakázání anonymního přístupu k účtu úložiště pomocí nastavení anonymního přístupu účtu úložiště nemá vliv na statické weby hostované v tomto účtu úložiště. Další informace najdete v tématu Náprava anonymního přístupu pro čtení k datům objektů blob (nasazení Azure Resource Manager).

Mapování vlastní domény na adresu URL statického webu

Statický web můžete zpřístupnit prostřednictvím vlastní domény.

Pro vaši vlastní doménu je jednodušší povolit přístup HTTP, protože azure Storage ho nativně podporuje. Pokud chcete povolit protokol HTTPS, budete muset použít Azure CDN, protože Azure Storage zatím nativně nepodporuje protokol HTTPS s vlastními doménami. Podrobné pokyny najdete v tématu Mapování vlastní domény na koncový bod služby Azure Blob Storage .

Pokud je účet úložiště nakonfigurovaný tak, aby vyžadoval zabezpečený přenos přes protokol HTTPS, musí uživatelé používat koncový bod HTTPS.

Návod

Zvažte hostování domény v Azure. Další informace najdete v tématu Hostování domény v Azure DNS.

Přidání záhlaví HTTP

Neexistuje žádný způsob, jak nakonfigurovat záhlaví jako součást funkce statického webu. Můžete ale použít Azure CDN k přidání hlaviček a připojení (nebo přepsání) hodnot hlaviček. Viz Referenční informace ke standardnímu modulu pravidel pro Azure CDN.

Pokud chcete k řízení ukládání do mezipaměti použít hlavičky, přečtěte si téma Řízení chování Azure CDN při ukládání do mezipaměti pomocí pravidel ukládání do mezipaměti.

Hosting webových stránek pro více oblastí

Pokud plánujete hostovat web ve více zeměpisných oblastech, doporučujeme použít síť Content Delivery Network pro regionální ukládání do mezipaměti. Azure Front Door použijte, pokud chcete v každé oblasti poskytovat jiný obsah. Poskytuje také možnosti převzetí služeb při selhání. Azure Traffic Manager se nedoporučuje, pokud plánujete použít vlastní doménu. Problémy mohou nastat kvůli tomu, jak Azure Storage ověřuje vlastní názvy domén.

Povolení

Oprávnění k povolení statického webu je Microsoft.Storage/storageAccounts/blobServices/write nebo sdílený klíč. Mezi předdefinované role, které tento přístup poskytují, patří Přispěvatel účtu úložiště.

Cenotvorba

Statický hosting webových stránek můžete povolit zdarma. Účtují se vám jenom náklady na úložiště objektů blob, které váš web využívá, a provozní náklady. Další podrobnosti o cenách služby Azure Blob Storage najdete na stránce s cenami služby Azure Blob Storage.

Metodiky

Metriky můžete povolit na statických webových stránkách. Po povolení metrik se statistiky provozu u souborů v kontejneru $web zobrazí na řídicím panelu metrik.

Chcete-li povolit metriky na statických webových stránkách, přečtěte si článek Povolení metrik na statických webových stránkách.

Podpora funkcí

Podpora této funkce může mít vliv na povolení protokolu Data Lake Storage Gen2, systému souborů NFS (Network File System) 3.0 nebo protokolu SSH File Transfer Protocol (SFTP). Pokud jste některou z těchto funkcí povolili, podívejte se na podporu funkcí služby Blob Storage v účtech Azure Storage a vyhodnoťte podporu této funkce.

Často kladené otázky (FAQ)

Funguje brána firewall služby Azure Storage se statickým webem?

Ano. Koncový bod statického webu podporuje pravidla zabezpečení sítě účtu úložiště, včetně bran firewall založených na protokolu IP a bran firewall virtuálních sítí, která je možné použít k zajištění ochrany vašeho webu.

Podporují statické webové stránky Microsoft Entra ID?

Ne. Statický web podporuje anonymní přístup pro čtení pouze pro soubory v kontejneru $web .

Jak mohu použít vlastní doménu se statickým webem?

Pro statický web můžete nakonfigurovat vlastní doménu s využitím služby Azure Content Delivery Network (Azure CDN). Azure CDN nabízí konzistentně nízkou latenci připojení k vašemu webu odkudkoli na světě.

Jak mohu použít vlastní certifikát SSL (Secure Sockets Layer) se statickým webem?

Můžete pro statický web nakonfigurovat vlastní certifikát SSL s využitím služby Azure CDN. Azure CDN nabízí konzistentně nízkou latenci připojení k vašemu webu odkudkoli na světě.

Jak přidám vlastní záhlaví a pravidla na statický web?

Hlavičku hostitele pro statický web můžete nakonfigurovat pomocí modulu pravidel Azure CDN. Budeme mít zájem o vaši zpětnou vazbu zde.

Proč se mi ze statického webu zobrazuje chyba HTTP 404?

K chybě 404 může dojít, pokud na název souboru odkazujete s použitím nesprávného velkého a malého písmene. Například: Index.html místo index.html. U názvů souborů a jejich přípon v adrese URL statického webu se rozlišují velká a malá písmena, i když se obsluhují přes HTTP. K tomu může dojít také v případě, že váš koncový bod Azure CDN ještě není zřízený. Po zřízení nové sítě Azure CDN počkejte až 90 minut, než se šíření dokončí.

Proč kořenový adresář webu nepřesměrovává na výchozí stránku indexu?

Na webu Azure Portal otevřete stránku konfigurace statického webu vašeho účtu a vyhledejte název a příponu nastavené v poli Název dokumentu indexu. Ujistěte se, že se tento název přesně shoduje s názvem souboru v kontejneru $web účtu úložiště. U názvů souborů a jejich přípon v adrese URL statického webu se rozlišují velká a malá písmena, i když se obsluhují přes HTTP.

Proč nemohu získat přístup ke statickým webům v účtu úložiště, když je pro objekt blob v účtu úložiště povolený privátní koncový bod?

Povolením privátního koncového bodu pro objekty blob v účtu úložiště omezíte přístup k tomuto účtu úložiště pouze na prostředky ve stejné virtuální síti. V důsledku toho toto omezení brání externímu přístupu ke statickému webu hostovanému v účtu úložiště, čímž se obsah statického webu stává nepřístupným. Konfigurace privátního koncového bodu omezuje přístup ke všem prostředkům účtu úložiště, včetně statického obsahu webu, na prostředky ve stejné virtuální síti, ve které je povolený privátní koncový bod. Řešením by bylo vytvořit privátní koncový bod speciálně pro web. Statický web potřebuje vyhrazený privátní koncový bod pro $web doménu.

Další kroky