HAProxy ACL: роутинг по хосту и комбинация условий

Один и тот же frontend в HAProxy часто обслуживает сразу несколько доменов, и разводить их по backend удобнее не по пути запроса, а по заголовку Host: frontend https_in bind *:443 acl host_api hdr(host) -i api.example.com acl host_admin hdr(host) -i admin.example.com use_backend api_servers if host_api use_backend admin_servers if host_admin default_backend web_servers Флаг -i делает сравнение регистронезависимым — без него API.example.com и api.example.com считаются разными хостами, что почти никогда не то, что нужно. ...

October 13, 2026 · llexa

keepalived: плавающий IP через VRRP без облачного балансировщика

Когда облачного балансировщика нет (bare-metal, свой ЦОД), а нужен один IP, за которым прозрачно стоит один из двух серверов — keepalived поднимает VRRP: два узла договариваются, кто сейчас MASTER и держит виртуальный IP, а кто BACKUP и ждёт. # /etc/keepalived/keepalived.conf на MASTER vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 150 virtual_ipaddress { 10.0.0.100/24 } } На BACKUP — та же конфигурация, но state BACKUP и priority ниже (например, 100). virtual_router_id должен совпадать на обеих машинах — это идентификатор VRRP-группы, не порт и не IP. ...

September 18, 2026 · llexa

tcpdump: захват трафика из терминала

Wireshark на сервере без GUI не поставить, а разобраться, что происходит на сети, иногда нужно прямо там. tcpdump закрывает этот разрыв — захват и базовый разбор пакетов одной командой, файл потом можно открыть в Wireshark локально. tcpdump -i eth0 -n port 443 tcpdump -i any -n host 10.0.0.5 and not port 22 tcpdump -i eth0 -w capture.pcap -n отключает резолв DNS/портов в имена — без него каждый пакет тормозит на обратном lookup. -w пишет в pcap-файл вместо вывода в терминал — так и захватывать на сервере, а анализировать в Wireshark на своей машине. ...

September 16, 2026 · llexa

dnsmasq: локальный DNS и DHCP в одном конфиге

Для полноценного BIND в домашней или маленькой офисной сети — оверкилл. dnsmasq закрывает DNS-кэш и DHCP одним лёгким демоном и одним конфигом. # /etc/dnsmasq.conf interface=eth0 dhcp-range=192.168.1.50,192.168.1.150,12h address=/nas.local/192.168.1.10 server=1.1.1.1 no-resolv dhcp-range включает DHCP-сервер на интерфейсе с указанным пулом и временем аренды. address=/domain/ip — локальная запись без правки /etc/hosts на каждой машине сети. server=1.1.1.1 + no-resolv — форвардить внешние запросы на конкретный DNS, игнорируя системный /etc/resolv.conf. Проверка конфига без перезапуска — dnsmasq --test, применение — systemctl reload dnsmasq. ...

August 1, 2026 · llexa

HAProxy: frontend, backend и health check по отдельности

HAProxy проще воспринимать не как веб-сервер, а как балансировщик L4/L7 — логика делится на frontend (кто принимает трафик) и backend (куда отдать). frontend http_in bind *:80 acl is_api path_beg /api use_backend api_servers if is_api default_backend web_servers backend web_servers balance roundrobin server web1 10.0.0.1:8080 check server web2 10.0.0.2:8080 check backend api_servers balance leastconn server api1 10.0.0.3:9000 check inter 2000 rise 2 fall 3 check — обязательный флаг, без него HAProxy не уберёт мёртвый сервер из ротации. inter 2000 rise 2 fall 3 — проверка раз в 2 секунды, 2 успеха возвращают сервер в строй, 3 провала выводят. ACL по path_beg роутит /api в отдельный backend без отдельного frontend. ...

July 30, 2026 · llexa

mtr: traceroute и ping в одном инструменте

ping показывает, жив ли хост, traceroute — маршрут до него, но оба дают разовый снимок. mtr держит трассировку открытой непрерывно и на каждом хопе копит статистику потерь и задержки — сразу видно, где именно на маршруте начинаются проблемы. # интерактивный режим (обновление в реальном времени) mtr 8.8.8.8 # отчёт в текст, для логов/тикетов mtr --report -c 100 8.8.8.8 # только IPv4, без резолва имён (быстрее) mtr -4 -n 1.1.1.1 Полезно на перемежающихся проблемах “то работает, то нет”: обычный traceroute может попасть в момент, когда всё хорошо, а mtr за пару минут накопит статистику и покажет конкретный хоп с процентом потерь. ...

July 24, 2026 · llexa

siege и wrk: нагрузочное тестирование HTTP из терминала

Перед тем как отдавать сервис в прод, полезно прикинуть, сколько запросов в секунду он держит — без разворачивания JMeter или Gatling. siege и wrk — однобинарники, дают нагрузку из терминала за одну команду. # siege: 50 одновременных клиентов, 30 секунд siege -c 50 -t 30s http://localhost/ # wrk: 4 потока, 100 соединений, 30 секунд wrk -t4 -c100 -d30s http://localhost/ siege проще читается (concurrent users, availability, response time), wrk быстрее на высоких нагрузках за счёт своего event-loop на Lua-скриптах — можно писать кастомные сценарии запросов, не только GET на один URL. Для быстрой проверки “не упадёт ли nginx под пиковой нагрузкой” любой из двух хватает. ...

July 24, 2026 · llexa

nmcli: NetworkManager из терминала

На серверах с NetworkManager настройки сети живут не в /etc/network/interfaces, а в connection-профилях самого NetworkManager. nmcli — способ управлять ими из терминала, без риска потерять единственный SSH-сеанс на неудачный ifconfig. nmcli device status # список интерфейсов и их состояние nmcli con show # все сохранённые подключения nmcli con up "Wired connection 1" # поднять nmcli con down eth0 # погасить Статический IP без правки конфигов руками: nmcli con mod eth0 ipv4.addresses 192.168.1.50/24 nmcli con mod eth0 ipv4.gateway 192.168.1.1 nmcli con mod eth0 ipv4.dns "8.8.8.8 1.1.1.1" nmcli con mod eth0 ipv4.method manual nmcli con up eth0 Изменения применяются сразу после con up — перезагрузка не нужна. ...

July 18, 2026 · llexa

nethogs: кто жрёт канал прямо сейчас

iftop и nload показывают трафик по соединениям и интерфейсам, но не отвечают на вопрос “какой процесс это жрёт”. nethogs группирует трафик именно по PID — сразу видно виновника, без ручного сопоставления портов через ss. apt install nethogs # по умолчанию слушает все интерфейсы sudo nethogs # конкретный интерфейс sudo nethogs eth0 # несколько интерфейсов sudo nethogs eth0 wg0 Горячие клавиши внутри интерфейса: m — переключить единицы (KB/s ↔ MB/s) s — сортировка по отправленному r — сортировка по принятому q — выход Требует root (или CAP_NET_ADMIN) — читает трафик напрямую с интерфейса. ...

July 10, 2026 · llexa

vnstat: история трафика без Grafana

nethogs и iftop показывают трафик здесь и сейчас, но не отвечают на вопрос “сколько утекло за сутки/месяц”. vnstat работает как демон в фоне, копит статистику по интерфейсам и хранит её после перезагрузки — без полноценного стека мониторинга. apt install vnstat # демон стартует сам и начинает копить статистику systemctl status vnstat # общая сводка по всем интерфейсам vnstat # по часам / дням / месяцам vnstat -h vnstat -d vnstat -m # live-график в реальном времени vnstat -l -i eth0 Конфиг — /etc/vnstat.conf: там задаются интерфейсы, единицы измерения и глубина хранения истории. ...

July 10, 2026 · llexa