Настройка интерфейса в keepalived
У меня есть 2 сервера, на обоих стоят nginx и kipalived. На первом сервере конфигурация выглядит так:
global_defs {
enable_script_security
}
vrrp_script nginx_check {
script "/usr/bin/curl http://127.0.0.1"
interval 5
user nginx
}
vrrp_instance web {
state MASTER
interface enp1s0
virtual_router_id 254
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 12345678
}
virtual_ipaddress {
192.168.31.254
}
track_script {
nginx_check
}
notify /etc/keepalived/notify-web.sh root
}
На втором аналогично, только state BACUP, priority 50. У меня вопросы:
что делает keepalived - только создаёт виртуальный ip и присваивает его тому серверу, который работает? если так, что ip присваивает компьютеру или самому себе?
правильно ли указывать адрес http://127.0.0.1 для проверки работоспособности сайта при условии, если сайт запущен на обоих серверах? ведь приложение запущено в двух экземплярах (в смысле на обоих серверах) и на них адрес этого приложений будет одинаковым
"interface enp1s0" - должно быть одинаково на обоих серверах?
какой указать интерфейс исходя из этого (на обоих серверах разные имена интерфейсов - так и должно быть):
olegg@serverotale1:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 40:8d:5c:f5:74:33 brd ff:ff:ff:ff:ff:ff inet 192.168.31.96/24 brd 192.168.31.255 scope global dynamic noprefixroute enp1s0 valid_lft 36147sec preferred_lft 36147sec inet 192.168.31.254/32 scope global enp1s0 valid_lft forever preferred_lft forever inet6 fe80::428d:5cff:fef5:7433/64 scope link valid_lft forever preferred_lft forever 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether aa:28:33:0d:fe:65 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever oleggeg@server:~$
Ответы (1 шт):
Предположим у вас две машины с адресами 192.168.31.96 основной и 192.168.31.97 бекап.
Проверять сайт на самом себе (127.0.0.1) имеет смысл только для уверенности, что локальный NGINX живой. А то, что мастер упал и более недоступен по идее второй сервер и так сам узнает. На то и нужен vrrp.
Интерфейсы, конечно же указывать на каждой машине свои.
virtual_router_id 254 - общий чтоб серверы знали, что принадлежат одной группе, обслуживающей один виртуальный адрес.
virtual_ipaddress - один и тот же 192.168.31.254. Это его они будут создавать по активации.
И, конечно же потом, с улицы вы смотрите на nginx по IP 192.168.31.254.