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).
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:
- Vaclav Jirovsky | Architekt rozwiązań w chmurze
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:
- Co to jest usługa Azure Front Door?
- Co to jest usługa Azure Web Application Firewall?
- Informacje o usłudze Azure Key Vault
- Co to jest usługa Azure Load Balancer?
- Co to jest Azure Application Gateway?
- Co to jest usługa Azure Virtual Network?
- Co to jest usługa Azure Firewall?
- Co to jest usługa VPN Gateway?
Moduły szkoleniowe:
- Wprowadzenie do usługi Azure Front Door
- Konfigurowanie modułu Azure Load Balancer
- Implementowanie usługi Azure Key Vault
- Wprowadzenie do usługi Azure Virtual Network