Кластеризация веб-сервера

Урок 223 из 267
Автор: Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
3 из 5
Дата изменения: 23.11.2019
Просмотров: 6649
Ограничения по редакциям: Старт, Стандарт, Малый бизнес, Бизнес

Несколько веб-серверов

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

Такой принцип работы ставит две задачи:

  1. На каждом веб-сервере должен находиться одинаковый контент ( файлы Например, картинка, загруженная через административный интерфейс на одном веб-сервере, должна быть доступна для отдачи посетителю через другой веб-сервер. ).
  2. Пользовательская сессия должна быть "прозрачной" для всех серверов веб-кластера Например, после авторизации на одном из серверов пользователь должен считаться авторизованных и для всех других серверов. И наоборот, окончание сессии на любом сервере должно означать ее окончание на всех серверах сразу. .

Не все эти задачи могут быть решены в полной степени на уровне веб-приложения. Опишем возможные подходы, покажем на примерах конкретные реализации и расскажем о тех инструментах модуля Веб-кластер платформы "1С-Битрикс", которые помогают решить вопрос кластеризации веб-сервера.

Решение задач

Существует два возможных метода обеспечения синхронизации данных на серверах:

  1. Использование общего дискового хранилища данных.
  2. Использование инструментов синхронизации данных между локальными хранилищами разных серверов.

Кроме того, можно использовать пул серверов memcached (что позволяет значительно сократить объем синхронизируемых файлов за счет вынесения кеша продукта с файловой системы в memcached) и различные варианты хранения пользовательских сессий.

Каждый веб-сервер кластера можно добавить в общий веб-кластер для мониторинга в административном интерфейсе в разделе Веб-сервера На странице Веб-сервера (Настройки > Веб-кластер > [_название_группы_] > Веб-сервера) показаны статусы активности и текущей нагрузки веб-серверов. Страница носит информационный характер.

Подробнее ...
.

На каждом из серверов необходимо настроить страницу, на которой будет отображаться статистика веб-сервера Apache (с помощью модуля mod_status). Если используется "1С-Битрикс: Веб-окружение", необходимо:

  1. Внести изменения в конфигурационный файл Apache (/etc/httpd/conf/httpd.conf) - добавить:
    <IfModule mod_status.c>
    ExtendedStatus On
    <Location /server-status>
        SetHandler server-status
        Order allow,deny
        Allow from 10.0.0.1
        Allow from 10.0.0.2
        Deny from All
    </Location>
    </IfModule>
    

    Директива Location обозначает адрес, по которому будет доступна статистика, строки Allow from определяют, с каких IP-адресов статистика будет доступна для просмотра. Можно указать IP всех веб-серверов кластера.

    Перечитать конфигурационные файлы Apache с помощью команды:

    # service httpd reload
    
  2. Внести изменения в конфигурационный файл nginx (/etc/nginx/nginx.conf) - в первой секции server добавить:
    Location ~ ^/server-status$
    { 
      proxy_pass http://127.0.0.1:8888; 
    }
    

    Перечитать конфигурационные файлы nginx с помощью команды:

    # service nginx reload
    
  3. Отредактировать файл /home/bitrix/www/.htaccess, добавив после строки:
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ 
    
    ...строку: 
    
    RewriteCond %{REQUEST_URI} !/server-status$
    

После внесения всех необходимых изменений адрес server-status'а можно добавить в конфигурацию кластера .


Курсы разработаны в компании «1С-Битрикс»
Спасибо, мы рады что смогли помочь Вам. Ниже Вы можете оставить свой отзыв или пожелание :)
Нам жаль это слышать… Но мы постараемся быть лучше! Поясните, пожалуйста, свой выбор:

Мы благодарны Вам за помощь в улучшении документации.

Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас