Настройка конфигурации#
Для настройки балансировщика нагрузки используется декларативная конфигурация.
Конфигурацию балансировщика нагрузки можно просмотреть и отредактировать
в веб-интерфейсе Angie ADC
( Балансировщик нагрузки состоит из модулей, которые настраиваются директивами,
заданными в конфигурации.
Директивы могут быть простыми и блочными.
Простая директива состоит из имени и параметров, разделенных пробелами,
и оканчивается точкой с запятой Примеры: контекст events (общая обработка соединений); контекст http (конфигурация HTTP-балансировки); контекст stream (конфигурация TCP/UDP балансировки). Контексты В контекстах http и stream размещаются: блоки блоки В конфигурации в веб-интерфейсе Angie ADC уже предустановлены некоторые общие параметры.
Вам необходимо дополнить конфигурацию с учетом ваших целей. Подробнее о конфигурации и обработке соединений
см. Конфигурационные файлы и Соединения, сессии, запросы, логи. Важно Строки конфигурации, приведенные ниже, нельзя удалять или менять
(они используются для обеспечения работы соответствующего функционала Angie ADC). Контекст Контекст Angie ADC можно использовать в качестве прокси-сервера, который принимает запросы,
перенаправляет их на проксируемые серверы, получает от них ответы и отправляет их клиенту. В примере ниже настраивается базовый прокси-сервер,
который будет обслуживать запросы изображений из локального каталога
и отправлять все остальные запросы на проксируемый сервер. Создайте сервер, который будет использоваться в качестве бэкенда для прокси
(проксируемый сервер ), добавив блок Здесь сервер слушает на порту Примечание В общем случае конфигурационный файл может содержать несколько блоков Добавьте конфигурацию прокси-сервера: В первом блоке Примечание При выборе блока Сохраните изменения в конфигурации, нажав на кнопку Получившийся прокси-сервер будет обслуживать запросы
к файлам Чтобы настроить балансировку нагрузки для HTTP-трафика, добавьте
блок upstream в контекст Пример: В приведенном примере задана группа серверов Дополнительно в конфигурации вы можете настроить: резервирование серверов и групп для отказоустойчивости; смежные модули для HTTP-балансировки (keepalive,
sticky, zone, queue)
и stream-балансировки (sticky, zone). Подробнее см. в справочнике HTTP-модуля
и в справочнике потокового модуля. Если вы планируете использовать в конфигурации другие порты помимо 80/443,
вы можете открыть их с помощью команды open через CLI Angie ADC. Важно При настройке конфигурации не занимайте следующие порты
(используются внутренними сервисами Angie ADC): TCP:
22, 199, 2022, 2222, 2601, 2602, 2603, 2604, 2605, 2606,
2615, 2616, 2617, 2619, 2623, 3050, 3051, 3053, 3054, 3060,
3111, 3122, 3123, 3301, 3302, 3380, 3391, 5044, 5355, 5432,
8010, 8080, 9090, 9100, 9120, 9600, 9633, 9898, 9900, 60080 Порты 8080 и 8443 можно использовать, если у вас выделен отдельный интерфейс управления. UDP:
53, 161, 323, 546, 3784, 3785, 4784, 5355, 7784Управление трафиком → Балансировщик нагрузки).Структура конфигурации#
;.
В блочной директиве вместо точки с запятой после имени и параметров следует
набор дополнительных инструкций внутри фигурных скобок { и }.
Блочные директивы называются контекстами.events, http, stream располагаются в контексте main.
Другие директивы, размещенные вне контекстов events, http, stream,
считаются также находящимися в контексте main.server, в которых настраивается проксирование трафика;upstream, в которых настраиваются группы upstream-серверов
для балансировки нагрузки.main:error_log /var/log/angie-lb/healthmonitoring.log error;
pid /run/angie-lb.pid;
http:include /etc/angie-lb/prometheus_all.conf;
include /etc/angie-lb/internal/prometheus.conf;
Настройка простого прокси-сервера#
server в контекст http:server {
listen 8081;
root /static/www;
location / {
}
}
8081 и сопоставляет URI запросов
с файлами в каталоге /static/www (как настроить загрузку и раздачу
статических файлов см. соотв. статью). Директива root
находится в контексте server и будет использоваться,
если директива location,
выбранная для выполнения запроса, не содержит собственной директивы root.server,
отличающихся портами, на которых они слушают (listen),
и именами сервера (server_name).
Определив, какой server будет обрабатывать запрос, Angie ADC сравнивает
URI запроса с параметрами location,
заданными в блоке server, и принимает решение.server {
listen 80;
location / {
proxy_pass http://localhost:8081/;
}
location ~ \.(gif|jpg|png)$ {
root /static/images;
}
}
location добавлена директива proxy_pass
c указанием протокола, имени и порта проксируемого сервера.
Во втором блоке location задано регулярное выражение
для всех URI, оканчивающихся на .gif, .jpg или .png.
Соответствующие запросы будут обслуживаться из каталога /static/images.location, который будет обслуживать запрос,
сначала проверяются директивы location, задающие префиксы, и
запоминается location с самым длинным подходящим префиксом.
Затем проверяются блоки location, заданные регулярными выражениями,
в порядке их объявления в конфигурации и используется первое совпадение.
Иначе берется location, сохраненный до этого.Сохранить..gif, .jpg или .png из каталога /static/images,
а все остальные запросы будет проксировать на сервер localhost:8081.Настройка балансировки нагрузки#
http
и укажите в нем бэкенд-серверы, которые будут использоваться для балансировки нагрузки.
Затем настройте проксирование запросов на эту группу серверов
в блоке server с помощью директивы location.upstream backend {
zone backend 1m;
server backend1.example.com;
server backend2.example.com;
}
server {
listen 80;
server_name localhost;
location /api {
proxy_pass http://backend;
}
}
backend.
Все запросы на порт 80 с URI, начинающимися с /api,
проксируются в эту группу.
Метод балансировки нагрузки не указан явно,
поэтому по умолчанию используется метод round-robin
(запросы распределяются по серверам последовательно).Раширенная настройка#
Использование портов#