Как комбинация Apache и Nginx реализована в Timeweb Для многих компаний Nginx + Apache + PHP — весьма типичное и распространенное сочетание, и Timeweb — не исключение.
Однако понимание того, как именно это реализовано, может быть интересным и полезным.
Использование такой комбинации, конечно же, продиктовано потребностями наших клиентов.
И Nginx, и Apache играют особую роль, каждый решает конкретную задачу.
базовые настройки Апач выполняются в файлах конфигурации самого Apache, а настройки клиентских сайтов происходят через файл .
htaccess .
.
htaccess — файл конфигурации, в котором клиент может самостоятельно настраивать правила и поведение веб-сервера.
Эта настройка будет применяться конкретно к его сайту.
Например, благодаря функциональности Apache пользователи могут менять режим работы в одной и той же версии PHP с mod_php на mod_cgi; можно настроить редиректы, оптимизацию под SEO, удобный URL, некоторые ограничения для PHP. Нгинкс используется в качестве прокси-сервера для перенаправления трафика на Apache и в качестве веб-сервера для обслуживания статического контента.
Также мы разработали модули безопасности для Nginx, которые позволяют защитить данные наших пользователей, например, разделить права доступа.
Давайте представим, что пользователь заходит на сайт нашего клиента.
Сначала пользователь попадает в Nginx, который обслуживает статический контент. Это происходит мгновенно.
Затем, когда дело доходит до загрузки PHP, Nginx пересылает запрос Apache. А Apache вместе с PHP уже генерирует динамический контент.
Особенности связки Apache и Nginx в Timeweb
Наш виртуальный хостинг реализует 2 основные схемы работы для Apache и Nginx: Общий и выделенный .Общая схема Эта схема используется большинством пользователей.
Она отличается простотой и ресурсоемкостью: схема Shared использует меньше ресурсов, поэтому ее тариф дешевле.
По этой схеме на сервере работает один Nginx, позволяющий обслуживать все запросы пользователей, и несколько экземпляров Apache. Схема Shared уже давно совершенствуется: постепенно мы исправляли недостатки.
Удобно, что это можно сделать без необходимости изменения исходного кода.
Общая схема Выделенная схема
Выделенный требует больше ресурсов, поэтому его тариф дороже для клиентов.
В схеме Dedicated каждый клиент получает свой отдельный Apache. Ресурсы здесь зарезервированы для клиента, они выделяются исключительно.
Как это работает: На сервере установлено несколько версий PHP. Мы поддерживаем версии 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Итак, для каждой версии PHP запускается свой Apache.
Выделенная схема
Безопасная зона.
Настройка зон в Nginx Раньше для Nginx мы использовали множество зон общей памяти (зон) — по одному серверному блоку на домен.
Такая настройка требует много ресурсов, так как для каждого сайта создается отдельная зона.
Однако в настройках Nginx большинство сайтов однотипны, поэтому их можно разместить в одной зоне благодаря использованию директив карты в модуле.
ngx_http_map_module , которые позволяют указать соответствия.
Например, у нас есть шаблон зоны, в котором мы должны указать переменные: путь к сайту, версию PHP, пользователя.
Таким образом было ускорено перечитывание конфигурации Nginx, то есть перезагрузка.
Такая конфигурация значительно сэкономила ресурсы оперативной памяти и ускорила работу Nginx.
Перезагрузить не получится!
В схеме Shared мы избавились от необходимости перезагружать Apache при изменении настроек сайта.Раньше, когда один клиент хотел добавить домен или сменить версию PHP, требовалась обязательная перезагрузка Apache, что приводило к задержкам ответов и негативно влияло на производительность сайта.
Мы избавились от перезагрузок, создав динамические конфигурации.
Благодаря мпм-итк (модуль Apache) каждый процесс запускается от имени отдельного пользователя, что повышает уровень безопасности.
Этот метод позволяет перенести данные о пользователе и его document_root из Nginx в Apache2. Таким образом, Apache не содержит конфигураций сайта, он получает их динамически, и перезагрузки больше не требуются.
Конфигурация общей схемы
А как насчет Докера?
Многие компании перешли на контейнерную систему.Timeweb в настоящее время рассматривает возможность такого перехода.
Конечно, в каждом решении есть плюсы и минусы.
Наряду с неоспоримыми преимуществами, контейнерная система предоставляет пользователю меньше ресурсов.
В Timeweb благодаря описанной схеме хостинга у пользователя нет ограничений в оперативной памяти.
Он получает больше ресурсов, чем в контейнере.
Кроме того, у пользователя может быть загружено больше модулей Apache. Timeweb поддерживает около 500 000 веб-сайтов.
Мы берем на себя большую ответственность и не вносим мгновенных неоправданных изменений в сложную архитектуру.
Комбинация Apache и Nginx надежна и проверена временем.
Мы, в свою очередь, стараемся добиться максимальной производительности за счет уникальных конфигураций.
Для качественной и быстрой работы большого количества сайтов необходимо использовать шаблон и динамическую настройку Apache и Nginx. Он позволяет легко и быстро администрировать большое количество однотипных серверов.
Теги: #Nginx #Хостинг #Системное администрирование #Apache #веб-сервер #timeweb
-
Ардуино. Лучшая Книга По Мнению Читателей
19 Oct, 24 -
Мультфильм «Цыганка»: Хочешь Подарок?
19 Oct, 24 -
Лайфхаки По Копирайтингу
19 Oct, 24