WordPress — это универсальная и популярная система управления контентом, которая используется для создания веб-сайтов всех размеров для нескольких целей. От небольших персональных блогов до крупных корпоративных сайтов и магазинов электронной коммерции WordPress предлагает ряд функций и настроек в соответствии с различными потребностями. Однако из-за различных размеров и вариантов использования установки WordPress также имеет уникальные требования к размещению, которые зависят от таких факторов, как объем трафика и потребности хранилища.
В этой статье рассматриваются развертывания WordPress в Azure. Он предоставляет рекомендации по рассмотрению и реализации для обеспечения безопасной, масштабируемой и экономичной установки.
Общие советы по безопасности и производительности WordPress
Из-за своей подавляющей популярности WordPress является мишенью для хакеров. Веб-сайты, выполняемые на платформе, могут быть уязвимы для угроз безопасности, таких как вредоносные программы и фишинговые атаки. Следующие советы помогут вам устранить эти риски, создав более безопасную и эффективную установку WordPress.
Независимо от того, используете ли вы виртуальную машину или приложение Azure службу для архитектуры размещения или используете ли вы другое решение, эти советы применимы.
Использование Azure Брандмауэр веб-приложений
Брандмауэр веб-приложений помогает защитить веб-сайт от распространенных атак на веб-основе. Он выступает в качестве фильтра между веб-сайтом и Интернетом. В этой емкости Брандмауэр веб-приложений отслеживает входящие трафик и блокирует вредоносные запросы, которые могут использовать уязвимости в коде веб-сайта. Брандмауэр веб-приложений помогает защитить веб-сайт от различных атак, включая внедрение SQL, межсайтовые скрипты (XSS) и подделку межсайтовых запросов (CSRF).
Для централизованной защиты веб-приложений следует использовать Брандмауэр веб-приложений в Azure Front Door. Azure Front Door — это сеть доставки содержимого, которая помогает предоставлять пользователям по всему миру быстрый, надежный и безопасный доступ к статическому и динамическому веб-содержимому приложений. Развертывание Брандмауэр веб-приложений в Azure Front Door помогает защитить веб-службы от распространенных эксплойтов и уязвимостей.
Удаление неиспользуемых подключаемых модулей и тем
Вы должны удалить неиспользуемые подключаемые модули и темы из установки WordPress. Этот шаг важен для обеспечения безопасности веб-сайта WordPress и оптимизации его производительности. Даже подключаемый модуль или тема, которую вы не используете, может представлять угрозу безопасности, предоставляя точку входа для хакеров для использования уязвимостей в устаревшем или неуправляемом коде. Кроме того, наличие большого количества подключаемых модулей и тем, установленных на веб-сайте, может замедлить его производительность, увеличив время загрузки и использование ресурсов сервера.
Отключение статического содержимого от процессора PHP
Чтобы уменьшить нагрузку на процессор PHP, следует выгрузить статическое содержимое, например изображения, видео и CSS-файлы. Разгрузка статического содержимого помогает оптимизировать производительность веб-сайта и уменьшить нагрузку сервера. Когда пользователь посещает веб-сайт, сервер обрабатывает код PHP и динамически создает HTML-содержимое. Этот процесс потребляет много ресурсов. Однако статическое содержимое часто не изменяется, поэтому вы можете обслуживать статическое содержимое непосредственно из файловой системы сервера или сети доставки содержимого. Выгрузив эти ресурсы, вы можете уменьшить нагрузку на ЦП и ОЗУ сервера. Эта конфигурация приводит к повышению времени загрузки страниц, повышению производительности веб-сайта и улучшению взаимодействия с пользователем.
Кроме того, существуют другие преимущества обслуживания статических ресурсов из сетевой службы доставки содержимого, например Azure Front Door. Например, при разгрузке статического содержимого можно уменьшить задержку и увеличить скорость веб-сайта, разместив серверы близко к географическим расположениям пользователей.
Примечание.
Чтобы защитить источник с помощью Azure Front Door с помощью частной конечной точки, необходимо использовать номер SKU уровня "Премиум" Azure Front Door. Дополнительные сведения см. в разделе "Защита источника с помощью Приватный канал".
Недопустимое кэширование сети доставки содержимого
Для крупных установок WordPress, использующих сеть доставки содержимого, например Azure Front Door или Azure сеть доставки содержимого, необходимо реализовать логику недопустимости кэша. Всякий раз, когда происходит новое событие, необходимо сделать кэш недействительным в сети доставки содержимого для затронутой страницы. Примеры событий включают публикацию новой статьи, обновление существующей страницы и добавление комментария. Логика недопустимости должна найти все URL-адреса, влияющие на изменение. В частности, логика должна находить и недействительно создавать динамически созданные страницы, такие как категории и архивы, в кэше сети доставки содержимого. При использовании некоторых установленных тем и подключаемых модулей даже незначительные изменения могут повлиять на каждую страницу.
Способ реализации логики обнаружения — использовать подключаемый модуль, который позволяет вручную активировать недопустимость кэша для всех URL-адресов. Но отмена всех URL-адресов одновременно может привести к всплеску трафика на сайте WordPress.
Включение двухфакторной проверки подлинности
Двухфакторная проверка подлинности повышает безопасность установки и помогает защитить учетные записи администратора от несанкционированного доступа и атак. Чтобы воспользоваться преимуществами двухфакторной проверки подлинности, можно использовать подключаемый модуль, например подключаемый модуль проверки подлинности miniOrange. Среди других функций этот подключаемый модуль предоставляет способ настройки Microsoft Authenticator в качестве метода двухфакторной проверки подлинности для пользователей, которые вошли на сайт WordPress в качестве администраторов.
Отключение доступа XML-RPC
XML-RPC — это удаленный протокол, позволяющий сторонним приложениям взаимодействовать с сервером веб-сайта. Однако этот протокол также является общим объектом для хакеров, которые используют его для запуска атак подбора или уязвимостей в системе управления содержимым. Если вы используете Azure Front Door, вы можете отключить XML-RPC, настроив правило запрета для URL-адресов с форматом /xmlrpc.php
.
Ограничение доступа к панели администрирования
По умолчанию панель администрирования WordPress доступна всем пользователям с учетными данными учетной записи и правильным URL-адресом, который имеет формат /wp-login.php
или /wp-admin
. В результате хакеры и другие вредоносные субъекты могут попытаться угадать свои учетные данные, выполнить перехват сеанса, запустить атаки подбора или использовать уязвимости в WordPress для получения доступа.
Брандмауэр веб-приложений может помочь предотвратить некоторые атаки, но многие администраторы предпочитают ограничить доступ к панели администрирования WordPress на уровне сети.
Например, вы можете заблокировать доступ к частным URL-адресам в Azure Front Door. Затем можно использовать Шлюз приложений Azure для предоставления внутреннего доступа из частной сети, которая использует топологию концентратора и периферийной сети. Внутренние экземпляры Шлюз приложений поддерживают правила Брандмауэр веб-приложений и правила Azure Front Door. Эти правила помогают защитить установку WordPress от внутренних атак. Если вы можете терпеть риск внутренней атаки, можно использовать внутренний экземпляр Azure Load Balancer вместо Шлюз приложений. Load Balancer работает на уровне четырех уровней модели взаимодействия с открытыми системами (OSI).
Скачайте файл Visio для этой архитектуры.
Некоторые подключаемые модули WordPress требуют, чтобы URL-адреса с форматом /wp-admin/admin-ajax.php
были общедоступными и удалены из этого правила запрета.
Хранение секретов в Azure Key Vault
Чтобы обеспечить безопасность развертываний WordPress в Azure, рекомендуется хранить секреты, такие как пароли базы данных и SSL-сертификаты, в Key Vault. Эта облачная служба помогает обеспечить безопасное хранение и управление криптографическими ключами, сертификатами и секретами.
Key Vault помогает авторизованным приложениям и службам безопасно получать доступ к секретам. Их не нужно хранить в виде обычного текста в образе контейнера WordPress или в коде приложения.
Настройка производительности
Чтобы оптимизировать производительность WordPress, необходимо настроить различные параметры и использовать подключаемые модули. Для отладки установок WordPress можно использовать следующие подключаемые модули:
Монитор запросов предоставляет разбивку времени, затраченного на каждый sql-запрос и другие действия. Примерами являются ошибки PHP, перехватчики и действия, блоки редактора блоков, вложенные скрипты и таблицы стилей, а также вызовы API HTTP.
Laps — это подключаемый модуль, в который отображаются сведения о производительности загрузки страницы WordPress. Предоставление визуальной сводки, которую легко проверить, она автоматически отслеживает такие события, как выполнение PHP, основные процессы, подключаемые модули, загрузки темы, основные циклы записи, боковой панели, запросы базы данных и сетевые запросы. В этом разделе показано, как время затрачено на загрузку страницы WordPress.
Размещение проблем WordPress
В архитектуре приложения WordPress существует несколько проблем размещения, в том числе:
- Масштабируемость. Архитектура размещения должна быть в состоянии масштабироваться во время пиковых периодов трафика.
- Хранилище ReadWriteMany (RWX). По умолчанию WordPress хранит все статические ресурсы, подключаемые модули и исходный код темы в каталоге
/wp-content/
. Во время горизонтального масштабирования все узлы должны иметь возможность считывания и записи в этот каталог. - Класс хранилища входных и выходных операций в секунду (IOPS). WordPress состоит из более чем 1000 небольших .php файлов, на которые процессор PHP ссылается, загружает и выполняется во время входящих запросов. При использовании некоторых протоколов загрузка многочисленных небольших файлов может увеличить затраты. Общая производительность затем замедляется, чем загрузка одного файла с одинаковым общим размером. В результате решение хранилища должно поддерживать высокий объем операций ввода-вывода в секунду.
- Недопустимое кэширование. При наличии нового действия в приложении, например при публикации новой статьи, необходимо сделать кэш недействительным на всех узлах.
- Время сборки кэша. Для первого пользователя заданного узла время отклика может быть медленно, пока кэш не будет создан.
Варианты размещения WordPress в Azure
WordPress может работать в Служба приложений, Служба Azure Kubernetes (AKS) и Azure Виртуальные машины. Размер установки является важным фактором выбранного узла. Для небольших и средних установок Служба приложений является экономически эффективным вариантом. Однако для более крупных установок следует рассмотреть возможность размещения AKS или виртуальной машины.
WordPress в Службе приложений
Корпорация Майкрософт предоставляет полностью управляемое решение для запуска WordPress на Служба приложений в Linux виртуальных машинах. Подробные сведения см. в разделе "Создание сайта WordPress". Это решение:
- Предназначен для быстрого и простого развертывания установки WordPress.
- Идеально подходит для небольших и средних установок WordPress.
- Обеспечивает масштабируемость, надежность и безопасность платформы Azure без необходимости сложной конфигурации или управления.
- Выполняет автоматическое обновление, резервное копирование и мониторинг, чтобы обеспечить доступность сайта.
Дополнительные сведения см. в Служба приложений WordPress.
Рабочие нагрузки с интенсивным использованием хранилища
Большие установки WordPress могут быть интенсивными. В этих сценариях следует использовать решение для хранения с высоким уровнем ввода-вывода в секунду и низкой задержкой. Мы рекомендуем Azure NetApp Files. Azure NetApp Files может поддерживать развертывания WordPress с большим объемом хранилища. Он также предоставляет дополнительные функции, такие как защита данных, резервное копирование и восстановление, репликация между регионами и аварийное восстановление.
Для развертывания контейнера WordPress следует использовать AKS. С помощью Azure NetApp Files реализуйте хранилище с помощью драйвера хранилища контейнеров Kubernetes (CSI). Azure NetApp Files предлагает ReadWriteMany
режим, чтобы все узлы могли считывать и записывать данные в одно хранилище. Дополнительные сведения см. в статье об архитектуре AKS WordPress.
Для крупной установки WordPress, работающей на виртуальных машинах, необходимо подключить Azure NetApp Files с помощью протокола сетевой файловой системы (NFS). Дополнительные сведения см. в разделе WordPress на виртуальных машинах.
Неизменяемый контейнер WordPress
Альтернативный подход к традиционным методам размещения — развертывание WordPress в неизменяемом контейнере. Этот подход имеет преимущества и недостатки. Исходный код и все ресурсы в неизменяемых контейнерах исправлены и не могут быть изменены после развертывания. Необходимо внести все изменения, включая новые установки подключаемых модулей или обновление ядра WordPress в новой версии образа контейнера. Хотя этот подход помогает обеспечить согласованность и упрощает откаты, необходимо создать конвейер развертывания для внесения изменений. Кроме того, неизменяемые контейнеры могут быть ограничены в вариантах постоянного хранения, которые они предлагают. Возможно, вам потребуется разработать решение для обработки файлов мультимедиа и других данных. Несмотря на эти ограничения, неизменяемые развертывания контейнеров предлагают преимущества с точки зрения безопасности, масштабируемости и переносимости.
Вы можете развернуть неизменяемую контейнерную версию WordPress на различных платформах, включая приложения контейнеров Azure, AKS и Служба приложений с пользовательским образом контейнера. Образ контейнера можно разместить в Реестр контейнеров Azure.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Автор субъекта:
- Ваклава Джировского | Архитектор облачных решений
Другие участники:
- Адриан Калинеску | Старший архитектор облачных решений
Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.
Следующие шаги
Документация по продукту:
- Что такое Azure Front Door?
- Что такое Брандмауэр веб-приложений Azure?
- Сведения об Azure Key Vault
- Что такое Azure Load Balancer
- What is Azure Application Gateway? (Что собой представляет шлюз приложений Azure)
- Что такое виртуальная сеть Azure?
- Что такое Брандмауэр Azure?
- Что такое VPN-шлюз?
Учебные модули:
- Общие сведения о Azure Front Door
- Настройка Azure Load Balancer
- Реализация Azure Key Vault
- Общие сведения о Azure виртуальная сеть