Роль веб-сервера и связанные с ней службы

Допустим, у вас имеется кластер из четырех веб-серверов. Каждая машина предоставляет клиенту комбинацию статического контента и динамических страниц, генерируемых РНР. Значение параметра MaxClients в Apache уменьшено до 80 одновременных подключений, чтобы предотвратить переполнение доступной памяти и подкачку с диска (swapping). Роль веб-сервера может выглядеть примерно так, как показано на рисунке.

Внезапное озарение подсказывает, что вы могли бы обслуживать большее количество одновременно работающих клиентов, разбив кластер на две роли первая использует текущую конфигурацию для выдачи динамического контента, а вторая — усеченную версию Apache с увеличенным значением MaxClients для выдачи только статического контента.

Сначала службы, общие для обеих ролей, выделяются в отдельную базовую службу HTTP (base_http). Эта служба включает функциональность, которая должна поддерживаться любым веб-сервером например, проверку общей работоспособности HTTP и получение метрик от модуля Apache status_module.

Затем создаются две новые службы. Динамическая служба HTTP содержит исходные конфигурации Apache и PHP. Статическая служба HTTP настраивается с упрощенной конфигурацией httpd.conf, более высоким клиентским порогом и без модуля РНР.

Далее роли для каждого типа сервера определяются комбинированием этих служб. Новые роли изображены на рисунке.

Роль статического веб-сервера и связанные с ней службы

После определения новой роли вы можете либо открыть систему учета оборудования и назначить одному или нескольким существующим веб-серверам роль static_webserver, либо развернуть новое оборудование с новой ролью. Если в будущем потребуется добавить дополнительные метрики или проверки, применимые к обеим ролям, включите их в службу base_http, тогда они будут унаследованы обеими ролями.