Перейти к основному содержимому

Настроить балансировку нагрузки по протоколу HTTP для серверов за межсетевым экраном FortiGate

к сведению

Это инструкция с примером настройки балансировки HTTP-трафика между серверами за межсетевым экраном.

к сведению

Инструкция актуальна для версий FortiOS 6.x и 7.x. Если у вас другая версия FortiOS, вы можете найти инструкции в официальной документации FortiGate.

  1. Если вы еще не связали FortiGate с серверами, свяжите межсетевой экран FortiGate с серверами в инфраструктуре Selectel.
  2. Создайте проверку доступности.
  3. Создайте виртуальный сервер.
  4. Создайте политику безопасности.
  5. Проверьте работу балансировки.

1. Связать межсетевой экран FortiGate с серверами в инфраструктуре Selectel

Используйте инструкцию Связать продукты и услуги через глобальный роутер.

2. Создать проверку доступности

Проверка доступности (Health Check) определяет работоспособность сервера за межсетевым экраном по настроенным параметрам. Если сервер за межсетевым экраном перестает отвечать, FortiGate перенаправит запросы на доступные серверы.

  1. Подключитесь к межсетевому экрану.
  2. Убедитесь, что в разделе SystemFeature Visibility включен тумблер Load Balance. Если тумблер выключен, разделы с настройками балансировки не будут отображаться.
  3. Перейдите в раздел Policy & ObjectsHealth Check.
  4. Нажмите Create New.
  5. В поле Name введите имя проверки доступности.
  6. В поле Type выберите протокол проверки доступности HTTP.
  7. В поле Interval введите частоту проверок сервера за межсетевым экраном в секундах или оставьте значение по умолчанию.
  8. В поле Timeout введите максимальное время ожидания ответа от сервера за межсетевым экраном в секундах или оставьте значение по умолчанию.
  9. В поле Retry введите количество неудачных проверок доступности, после которых сервер за межсетевым экраном будет исключен из балансировки, или оставьте значение по умолчанию.
  10. В поле Port введите порт для проверки доступности сервера за межсетевым экраном. По умолчанию это порт 80.
  11. В поле URL введите путь к файлу на сервере за межсетевым экраном, куда FortiGate будет отправлять GET-запрос для проверки доступности сервера за межсетевым экраном. Например, /health.html.
  12. В поле Matched content введите текст, который FortiGate будет искать в теле ответа на GET-запрос. Например, OK.
  13. Нажмите OK.

3. Создать виртуальный сервер

Виртуальный сервер (Virtual Server) принимает входящий трафик и перенаправляет его на реальные серверы (Real Server) — IP-адрес и порт сервера за межсетевым экраном. Вы можете добавить несколько реальных серверов, чтобы FortiGate автоматически распределял нагрузку между ними.

  1. Подключитесь к межсетевому экрану.

  2. Перейдите в раздел Policy & ObjectsVirtual Servers.

  3. Нажмите Create New.

  4. В поле Name введите имя виртуального сервера.

  5. В поле Type выберите протокол HTTP.

  6. В поле Interface выберите, через какой интерфейс межсетевого экрана будут поступать запросы на виртуальный сервер:

    • чтобы запросы поступали только через один интерфейс, выберите этот интерфейс. Например, wan1;
    • чтобы запросы поступали через все интерфейсы, выберите any.
  7. В поле Virtual Server IP введите публичный IP-адрес межсетевого экрана, который вы получили в тикете после заказа межсетевого экрана.

  8. В поле Virtual Server Port введите порт на межсетевом экране, на который будут поступать входящие запросы.

  9. В поле Load Balancing Method выберите метод балансировки нагрузки.

  10. Опционально: чтобы все запросы одного пользователя в рамках сессии обрабатывались одним сервером за межсетевым экраном, в поле Persistence выберите HTTP Cookie. Подробнее о сохранении сессии в подразделе Сохранение сессии инструкции Протоколы и методы балансировки нагрузки.

  11. В поле Health Check выберите проверку доступности, которую вы создали на этапе 2.

  12. Опционально: чтобы использовать одно TCP-соединение с сервером за межсетевым экраном при обработке нескольких HTTP-запросов, включите тумблер HTTP Multiplexing.

  13. Опционально: чтобы сохранять IP-адрес пользователя в HTTP-заголовке X-Forwarded-For, включите тумблер Preserve Client IP.

  14. В блоке Real Servers нажмите Create New.

  15. В поле IP Address введите приватный IP-адрес сервера за межсетевым экраном.

  16. В поле Port введите порт сервера за межсетевым экраном, на который будут перенаправляться запросы. По умолчанию это порт 80.

  17. Нажмите OK.

  18. Повторите шаги 14–17 для каждого сервера за межсетевым экраном, который нужно добавить в балансировку.

  19. Нажмите OK.

4. Создать политику безопасности

Политика безопасности определяет, какой трафик межсетевой экран будет пропускать между своими интерфейсами. Например, с помощью политики можно разрешить прохождение HTTP-трафика к виртуальному серверу. Если политики безопасности не созданы, весь трафик отбрасывается.

  1. Подключитесь к межсетевому экрану.
  2. Перейдите в раздел Policy & ObjectsIPv4 Policy.
  3. Нажмите Create New.
  4. В поле Name введите имя политики безопасности.
  5. В поле Incoming Interface выберите публичный интерфейс межсетевого экрана.
  6. В поле Outgoing Interface выберите приватный интерфейс межсетевого экрана.
  7. В поле Source выберите all.
  8. В поле Destination выберите виртуальный сервер, который вы создали на этапе 3.
  9. В поле Schedule выберите always.
  10. В поле Service выберите HTTP.
  11. В поле Action выберите Accept.
  12. В поле Inspection Mode выберите Proxy-based.
  13. Выключите тумблер NAT. Серверы за межсетевым экраном будут получать исходные IP-адреса подключений.
  14. Нажмите OK.

5. Проверить работу балансировки

  1. Подключитесь к межсетевому экрану.

  2. Перейдите в раздел MonitorLoad Balance Monitor.

  3. В столбце Real Server напротив IP-адреса реального сервера нажмите .

  4. В столбце Status проверьте состояние серверов:

    • Up — сервер активен, FortiGate направляет на него запросы;
    • Down — сервер не отвечает, FortiGate не направляет на него запросы.