Platforma WordPress na platformie Azure

Azure App Service
Azure Front Door
Azure Kubernetes Service (AKS)
Azure Web Application Firewall
Azure Private Link

WordPress to wszechstronny i popularny system zarządzania zawartością, który służy do tworzenia witryn internetowych o różnych rozmiarach na wiele celów. Od małych blogów osobistych po witryny firmowe i sklepy e-commerce na dużą skalę, WordPress oferuje szereg funkcji i dostosowań odpowiadających różnym potrzebom. Jednak ze względu na różne rozmiary i przypadki użycia instalacji, WordPress ma również unikatowe wymagania hostingu, które zależą od czynników, takich jak wielkość ruchu i potrzeby magazynu.

W tym artykule opisano wdrożenia platformy WordPress na platformie Azure. Zawiera on wskazówki dotyczące tego, co należy wziąć pod uwagę i wdrożyć, aby zapewnić bezpieczną, skalowalną i opłacalną instalację.

Ogólne porady dotyczące zabezpieczeń i wydajności platformy WordPress

Ze względu na przytłaczającą popularność WordPress jest celem hakerów. Witryny internetowe działające na platformie mogą być narażone na zagrożenia bezpieczeństwa, takie jak złośliwe oprogramowanie i ataki wyłudzające informacje. Poniższe porady mogą pomóc w rozwiązaniu tych zagrożeń, tworząc bezpieczną i wydajniejszą instalację platformy WordPress.

Niezależnie od tego, czy używasz maszyny wirtualnej, czy Azure App Service dla architektury hostingu, czy też używasz innego rozwiązania, te porady mają zastosowanie.

Korzystanie z usługi Azure Web Application Firewall

Web Application Firewall pomaga zabezpieczyć witrynę internetową przed typowymi atakami internetowymi. Działa jako filtr między witryną internetową a Internetem. W tej pojemności Web Application Firewall monitoruje ruch przychodzący i blokuje złośliwe żądania, które mogą wykorzystywać luki w zabezpieczeniach w kodzie witryny internetowej. Web Application Firewall pomaga chronić witrynę internetową przed szeregiem ataków, w tym iniekcji SQL, skryptów między witrynami (XSS) i fałszowania żądań między witrynami (CSRF).

Aby uzyskać scentralizowaną ochronę aplikacji internetowych, należy użyć Web Application Firewall w usłudze Azure Front Door. Azure Front Door to sieć dostarczania zawartości, która pomaga zapewnić użytkownikom na całym świecie szybki, niezawodny i bezpieczny dostęp do statycznej i dynamicznej zawartości internetowej aplikacji. Wdrażanie Web Application Firewall w usłudze Azure Front Door pomaga chronić usługi internetowe przed typowymi programami wykorzystującymi luki i lukami w zabezpieczeniach.

Usuwanie nieużywanych wtyczek i motywów

Należy usunąć nieużywane wtyczki i motywy z instalacji platformy WordPress. Ten krok jest ważny w celu zapewnienia bezpieczeństwa witryny internetowej WordPress i optymalizacji jej wydajności. Nawet wtyczka lub motyw, którego nie używasz aktywnie, może stanowić zagrożenie bezpieczeństwa, zapewniając hakerom punkt wejścia do wykorzystania luk w zabezpieczeniach w nieaktualnym lub niezamierzonym kodzie. Ponadto zainstalowanie wielu wtyczek i motywów w witrynie internetowej może spowolnić jej wydajność, zwiększając czas ładowania i użycie zasobów serwera.

Odciążanie zawartości statycznej z dala od procesora PHP

Aby zmniejszyć obciążenie procesora PHP, należy odciążyć zawartość statyczną, taką jak obrazy, filmy wideo i pliki CSS. Odciążanie zawartości statycznej pomaga zoptymalizować wydajność witryny internetowej i zmniejszyć obciążenie serwera. Gdy użytkownik odwiedza witrynę internetową, serwer przetwarza kod PHP i dynamicznie generuje zawartość HTML. Ten proces intensywnie obciąża zasoby. Jednak zawartość statyczna nie zmienia się często, więc można udostępniać zawartość statyczną bezpośrednio z systemu plików serwera lub sieci dostarczania zawartości. Odciążając te zasoby, można zmniejszyć obciążenie procesora i pamięci RAM serwera. Ta konfiguracja pozwala skrócić czas ładowania stron, poprawić wydajność witryny internetowej i poprawić środowisko użytkownika.

Istnieją również inne korzyści związane z obsługą zasobów statycznych z usługi sieci dostarczania zawartości, takiej jak Azure Front Door. Na przykład podczas odciążania zawartości statycznej można zmniejszyć opóźnienie i zwiększyć szybkość witryny internetowej, umieszczając serwery w pobliżu lokalizacji geograficznych użytkowników.

Uwaga

Aby ułatwić zabezpieczenie źródła za pomocą usługi Azure Front Door przy użyciu prywatnego punktu końcowego, musisz użyć jednostki SKU Premium usługi Azure Front Door. Aby uzyskać więcej informacji, zobacz Zabezpieczanie źródła za pomocą Private Link.

Unieważnienie pamięci podręcznej sieci dostarczania zawartości

W przypadku dużych instalacji platformy WordPress korzystających z sieci dostarczania zawartości, takiej jak Usługa Azure Front Door lub Azure Content Delivery Network, należy zaimplementować logikę unieważniania pamięci podręcznej. Za każdym razem, gdy wystąpi nowe zdarzenie, należy unieważnić pamięć podręczną w sieci dostarczania zawartości dla danej strony. Przykłady zdarzeń obejmują publikowanie nowego artykułu, aktualizowanie istniejącej strony i dodawanie komentarza. Logika unieważniania musi zlokalizować wszystkie adresy URL, których dotyczy zmiana. W szczególności logika musi znajdować i unieważniać dynamicznie generowane strony, takie jak kategorie i archiwa, w pamięci podręcznej sieci dostarczania zawartości. W przypadku niektórych zainstalowanych motywów i wtyczek nawet drobne zmiany mogą mieć wpływ na każdą stronę.

Prostym sposobem zaimplementowania logiki odnajdywania jest użycie wtyczki, która umożliwia ręczne wyzwalanie unieważnienia pamięci podręcznej dla wszystkich adresów URL. Jednak unieważnienie wszystkich adresów URL jednocześnie może spowodować wzrost ruchu w witrynie WordPress. Aby zapoznać się z przykładem logiki unieważniania pamięci podręcznej dla usługi Content Delivery Network, zobacz Opróżnianie pamięci podręcznej platformy Azure i wdrażanie implementacji haka w usłudze GitHub.

Włącz uwierzytelnianie dwuskładnikowe

Uwierzytelnianie dwuskładnikowe zwiększa bezpieczeństwo instalacji i pomaga chronić konta administratorów przed nieautoryzowanym dostępem i atakami. Aby skorzystać z uwierzytelniania dwuskładnikowego, możesz użyć wtyczki, takiej jak wtyczka uwierzytelniania miniOrange. Wśród innych funkcji ta wtyczka umożliwia skonfigurowanie aplikacji Microsoft Authenticator jako metody uwierzytelniania dwuskładnikowego dla użytkowników logujących się do witryny WordPress jako administratorzy.

Wyłączanie dostępu XML-RPC

XML-RPC to protokół zdalny, który umożliwia aplikacjom innych firm interakcję z serwerem witryny internetowej. Jednak ten protokół jest również typowym celem hakerów, którzy używają go do uruchamiania ataków siłowych lub luk w zabezpieczeniach systemu zarządzania zawartością. Jeśli używasz usługi Azure Front Door, możesz wyłączyć funkcję XML-RPC, konfigurując regułę odmowy dla adresów URL w formacie /xmlrpc.php.

Ograniczanie dostępu do panelu administracyjnego

Domyślnie panel administracyjny platformy WordPress jest dostępny dla każdej osoby z poświadczeniami twojego konta i poprawnym adresem URL, który ma format /wp-login.php lub /wp-admin. W rezultacie hakerzy i inni złośliwi aktorzy mogą próbować odgadnąć swoje poświadczenia, przejąć sesję, uruchomić ataki siłowe lub wykorzystać luki w zabezpieczeniach w wordPress, aby uzyskać dostęp.

Web Application Firewall może pomóc w zapobieganiu atakom, ale wielu administratorów woli ograniczyć dostęp do panelu administracyjnego WordPress na poziomie sieci.

Możesz na przykład zablokować dostęp do prywatnych adresów URL w usłudze Azure Front Door. Następnie można użyć Azure Application Gateway w celu zapewnienia dostępu wewnętrznego z sieci prywatnej korzystającej z topologii piasty i szprych. Wewnętrzne wystąpienia Application Gateway obsługują reguły Web Application Firewall i reguły usługi Azure Front Door. Te reguły pomagają chronić instalację platformy WordPress przed atakami wewnętrznymi. Jeśli możesz tolerować ryzyko ataku wewnętrznego, możesz użyć wewnętrznego wystąpienia Azure Load Balancer zamiast Application Gateway. Load Balancer działa w warstwie 4 modelu Open SystemsConnect (OSI).

Diagram architektury przedstawiający zablokowany publiczny dostęp do panelu administracyjnego WordPress. Sieć VPN w topologii piasty i szprych zapewnia dostęp wewnętrzny.

Pobierz plik programu Visio z tą architekturą.

Niektóre wtyczki WordPress wymagają, aby adresy URL z formatem /wp-admin/admin-ajax.php były publicznie dostępne i usuwane z tej reguły odmowy.

Przechowywanie wpisów tajnych w usłudze Azure Key Vault

Aby zapewnić bezpieczeństwo wdrożeń WordPress na platformie Azure, zalecamy przechowywanie wpisów tajnych, takich jak hasła bazy danych i certyfikaty TLS lub SSL, w Key Vault. Ta usługa oparta na chmurze pomaga zapewnić bezpieczny magazyn kluczy kryptograficznych, certyfikatów i wpisów tajnych oraz zarządzanie nimi.

Key Vault ułatwia autoryzowanym aplikacjom i usługom bezpieczne uzyskiwanie dostępu do wpisów tajnych. Nie musisz przechowywać ich w postaci zwykłego tekstu w obrazie kontenera WordPress ani w kodzie aplikacji.

Dostrajanie wydajności

Aby zoptymalizować wydajność platformy WordPress, należy dostosować różne ustawienia i użyć wtyczek. Następujące wtyczki mogą być przydatne do debugowania instalacji WordPress:

  • Monitor zapytań zawiera podział czasu poświęcanego na każde zapytanie SQL i inne akcje. Przykłady obejmują błędy PHP, punkty zaczepienia i akcje, blokowe bloki edytora, skrypty w kolejce i arkusze stylów oraz wywołania interfejsu API HTTP.
  • Laps zawiera podział czasu poświęcanego na ładowanie stron WordPress.

Wyzwania związane z hostingem platformy WordPress

Dzięki architekturze aplikacji WordPress istnieje kilka wyzwań związanych z hostingiem, w tym:

  • Skalowalność. Architektura hostingu musi mieć możliwość skalowania w poziomie w okresach szczytowego ruchu.
  • ReadWriteMany (RWX) — magazyn. Domyślnie platforma WordPress przechowuje wszystkie zasoby statyczne, wtyczki i kod źródłowy motywu /wp-content/ w katalogu. Podczas skalowania w poziomie wszystkie węzły muszą mieć możliwość odczytu z tego katalogu i zapisu do tego katalogu.
  • Operacje wejścia/wyjścia na sekundę (IOPS) klasy magazynu. WordPress składa się z ponad 1000 małych plików PHP, do których odwołuje się procesor PHP, ładuje i uruchamia podczas żądań przychodzących. W przypadku niektórych protokołów ładowanie wielu małych plików może zwiększyć obciążenie. Ogólna wydajność jest wtedy wolniejsza niż ładowanie jednego pliku o tym samym łącznym rozmiarze. W związku z tym rozwiązanie magazynu musi obsługiwać dużą ilość operacji we/wy na sekundę.
  • Unieważnienie pamięci podręcznej. Jeśli w aplikacji występują nowe działania, takie jak podczas publikowania nowego artykułu, należy unieważnić pamięć podręczną we wszystkich węzłach.
  • Czas tworzenia pamięci podręcznej. Dla pierwszego użytkownika danego węzła czas odpowiedzi może być powolny, dopóki pamięć podręczna nie zostanie skompilowana.

Opcje hostingu WordPress na platformie Azure

Platforma WordPress może działać w usługach App Service, Azure Kubernetes Service (AKS) i Azure Virtual Machines. Rozmiar instalacji jest ważnym czynnikiem w wybranym hoście. W przypadku małych i średnich instalacji App Service to ekonomiczna opcja. Jednak w przypadku większych instalacji należy rozważyć hostowanie usługi AKS lub maszyny wirtualnej.

Platforma WordPress w witrynie App Service

Firma Microsoft udostępnia w pełni zarządzane rozwiązanie do uruchamiania platformy WordPress na maszynach wirtualnych App Service dla systemu Linux. Aby uzyskać szczegółowe informacje, zobacz Tworzenie witryny WordPress. To rozwiązanie:

  • Jest przeznaczony do szybkiego i łatwego wdrażania instalacji WordPress.
  • Jest idealny do małych i średnich instalacji WordPress.
  • Zapewnia skalowalność, niezawodność i zabezpieczenia platformy Azure bez konieczności złożonej konfiguracji lub zarządzania.
  • Wykonuje automatyczne aktualizacje, kopie zapasowe i monitorowanie, aby zapewnić, że witryna jest zawsze dostępna.

Aby uzyskać więcej informacji, zobacz WordPress na App Service.

Obciążenia intensywnie korzystające z magazynu

Duże instalacje WordPress mogą intensywnie obciążać magazyn. W tych scenariuszach należy użyć rozwiązania magazynu z klasą o dużej klasie operacji we/wy na sekundę i małymi opóźnieniami. Zalecamy Azure NetApp Files. Azure NetApp Files może obsługiwać wdrożenia WordPress intensywnie korzystające z magazynu. Udostępnia również dodatkowe funkcje, takie jak ochrona danych, tworzenie kopii zapasowych i przywracanie, replikacja między regionami i odzyskiwanie po awarii.

W przypadku wdrożenia kontenera platformy WordPress należy użyć usługi AKS. Za pomocą Azure NetApp Files zaimplementuj magazyn za pomocą sterownika interfejsu CSI (Kubernetes Container Storage Interface). Azure NetApp Files oferuje ReadWriteMany tryb, dzięki czemu wszystkie węzły mogą odczytywać i zapisywać w tym samym magazynie. Aby uzyskać więcej informacji, zobacz Architektura AKS WordPress.

W przypadku dużej instalacji WordPress działającej na maszynach wirtualnych należy zainstalować Azure NetApp Files za pośrednictwem protokołu sieciowego systemu plików (NFS). Aby uzyskać więcej informacji, zobacz WordPress na maszynach wirtualnych.

Niezmienny kontener WordPress

Alternatywnym podejściem do tradycyjnych metod hostingu jest wdrożenie platformy WordPress w niezmiennym kontenerze. Takie podejście ma zalety i wady. Kod źródłowy i wszystkie zasoby w kontenerach niezmiennych są stałe i nie można ich modyfikować po wdrożeniu. Musisz wprowadzić wszystkie zmiany, w tym nowe instalacje wtyczek lub aktualizację podstawową platformy WordPress, w nowej wersji obrazu kontenera. Mimo że takie podejście pomaga zapewnić spójność i upraszcza wycofywanie, należy utworzyć potok wdrażania, aby wprowadzić zmiany. Ponadto niezmienne kontenery mogą być ograniczone w opcjach magazynu trwałego, które oferują. Może być konieczne opracowanie rozwiązania do obsługi plików multimedialnych i innych danych. Pomimo tych ograniczeń wdrożenia kontenerów niezmiennych oferują korzyści w zakresie zabezpieczeń, skalowalności i przenośności.

Możesz wdrożyć niezmienną konteneryzowaną wersję platformy WordPress na różnych platformach, w tym usługę Azure Container Apps, AKS i App Service przy użyciu niestandardowego obrazu kontenera. Obraz kontenera można hostować w Azure Container Registry.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Został pierwotnie napisany przez następujących współautorów.

Główny autor:

Inni współautorzy:

  • Adrian Calinescu | Starszy architekt rozwiązań w chmurze

Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki

Dokumentacja produktu:

Moduły szkoleniowe: