zabbix.kalinamall.ru:80 → 192.168.160.53, только IP из zabbix-allowed.
4.6 KiB
Установка HAProxy и развёртывание конфигурации
Для этого репозитория нужен HAProxy не ниже 2.4. Конструкции req_ssl_sni и tcp-request content accept (разбор ClientHello для SNI в TCP-режиме) входят в штатные сборки 2.8.x из Ubuntu 24.04 и во все актуальные ветки 3.x.
Вариант 1: пакет из репозитория Ubuntu (HAProxy 2.8.x)
Обычно этого достаточно для данного конфига:
sudo apt update
sudo apt install -y haproxy
haproxy -v
Проверьте, что версия 2.4+ (на Noble обычно 2.8.x).
Вариант 2: последняя ветка 3.x (PPA Vincent Bernat)
Актуальные пакеты HAProxy 3.3.x для Noble публикуются в PPA vbernat/haproxy-3.3 (номер микроверсии может обновляться; см. страницу PPA). Не подключайте одновременно несколько PPA с разными ветками HAProxy.
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:vbernat/haproxy-3.3
sudo apt update
sudo apt install -y haproxy
haproxy -v
sudo systemctl enable --now haproxy
Другие ветки того же автора (при необходимости): haproxy-3.2, haproxy-3.1, haproxy-3.0, а также haproxy-2.8 — всегда выбирайте одну строку версии.
Проверка синтаксиса конфига
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Установка конфигурации из репозитория
-
Убедитесь, что установлен HAProxy 2.4+ (см. разделы выше).
-
Скопируйте
haproxy.cfgи файлы allowlist в/etc/haproxy/. Пример, если репозиторий лежит в домашнем каталоге:sudo cp ~/reverse-proxy/haproxy.cfg /etc/haproxy/haproxy.cfg sudo cp ~/reverse-proxy/git-sac-allowed ~/reverse-proxy/1c-allowed ~/reverse-proxy/zabbix-allowed /etc/haproxy/ -
Проверка и перезапуск:
sudo haproxy -c -f /etc/haproxy/haproxy.cfg sudo systemctl reload haproxy
Проверка ssl verify none на бэкендах
В backend для 443 указано ssl verify none, чтобы health-check и при необходимости установка соединения не ломались на внутренних именах/SAN. Если вы выпустите внутренние доверенные CA и зададите их в системе, можно включить проверку (verify required + ca-file).
Порты на фаерволе
На хосте с HAProxy с интернета обычно открывают только то, что слушает конфиг: 25, 80 (Zabbix HTTP), 443 (и при использовании — 8404 для stats). Остальной трафик — по политике безопасности.
Порт 80 используется для http://zabbix.kalinamall.ru (allowlist zabbix-allowed). Для ACME на других именах см. letsencrypt-acme.md — потребуется расширить fe_http_zabbix маршрутизацией по Host/пути.
SAC и Seaca (sac-api)
- Веб-SAC:
sac.kalinamall.ru— IP изgit-sac-allowed - Seaca (Android):
sac-api.kalinamall.ru— без allowlist; добавьте A-запись на тот же IP HAProxy - На nginx SAC (192.168.160.145):
server_name sac.kalinamall.ru sac-api.kalinamall.ru;
Подробнее: sac-access.md.
Zabbix
zabbix.kalinamall.ru— HTTP на порту 80 (бэкенд 192.168.160.53:80, без TLS)- Снаружи:
http://zabbix.kalinamall.ru, неhttps:// - IP-allowlist:
zabbix-allowed(какgit-sac-allowed) - DNS: A
zabbix.kalinamall.ru→ публичный IP HAProxy
Проверка с allowlist IP:
curl -sI --resolve zabbix.kalinamall.ru:80:ПУБЛИЧНЫЙ_IP http://zabbix.kalinamall.ru/