Настройка проксирования для приложения с несколькими бекендами

Если у одного приложения несколько бекендов, между которыми трафик распределяется балансировщиком, то в этом случае для каждого бекенда создаются подобные блоки server. В каждом таком блоке в директиве listen указывается свой TCP-порт для каждого открытого порта на бэкенде. Ниже показан пример для приложения с двумя бэкендами.

На схеме раздел 7 отражена балансировка без использования WAF.

image117

Схема 7 – Схема балансировки без WAF

Для внедрения WAF на каждом анализаторе открывается по порту на каждый бэкенд, и схема балансировки принимает вид, согласно примеру в таблице раздел 3.

Таблица 3 – Схема балансировки

Балансировщик

WAF Analyzer

Backend

10.0.0.1

->

10.0.10.1:8081
10.0.10.1:8082
10.0.10.2:8081
10.0.10.2:8082

->

10.0.100.1:80
10.0.100.2:80
10.0.100.1:80
10.0.100.2:80

Итоговая схема с балансировкой представлена на схеме раздел 8.

image118

Схема 8 – Схема балансировки с WAF

Пример настроек проксирования на первом анализаторе WAF:

server {
    include static/server.conf;
    listen 10.0.10.1:8081;
    server_name example.com www.example.com;  # WAF configuration.

    set $BACKEND http://10.0.100.1;

    location / {
        include static/waf.conf;
    }
}

server {
    include static/server.conf;
    listen 10.0.10.1:8082;
    server_name example.com www.example.com;  # WAF configuration.

    set $BACKEND http://10.0.100.2;

    location / {
        include static/waf.conf;
    }
}