Установка Apache на CentOS 7 и автоматический запуск.
Учебное пособие по установке keepalived
Установка вышеуказанного учебного пособия устанавливает Apache и Keepalived на обеих машинах соответственно.
Конфигурация первой машины на основе Keepalived
Файл конфигурации содержит следующие элементы:
Edit / etc / keepalived / keepalived.conf
# vi / etc / keepalived / keepalived.conf, добавьте следующее
!Файл конфигурации для keepalived
global_defs {
notification_email {
admin@example.com
}
notification_email_from www.example.com
smtp_server www.example.com
smtp_connect_timeout 30
router_id linux01
}
vrrp_instance VI_1 { # Определение экземпляра
State Backup # Задайте резервную копию, а затем контролируйте, какой из них является основным по приоритету.
Интерфейс eth0
virtual_router_id 51
приоритетность 100
noppreempt # Установка этого параметра на высоком приоритете, удобная после восстановления основного
advert_int 1 # может быть автоматически
аутентификация {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.199 # Включить eth0: 0 здесь с тегом label
}
}
virtual_server www.example.com 80 { Внизу - определение LVS.
delay_loop 6
rr lb_algo
lb_kind DR
nat_mask www.example.com
Протокол TCP
real_server www.example.com 80 { Один из них - это локальный веб-сервис.
Вес 1
TCP_CHECK {
connect_timeout 3
}
}
real_server www.example.com 80 { # Другой веб-сервис
Вес 1
TCP_CHECK {
connect_timeout 3
}
}
}
Файл Keepalived для второй машины выглядит следующим образом
Edit / etc / keepalived / keepalived.conf
# vi / etc / keepalived / keepalived.conf, добавьте следующее
!Файл конфигурации для keepalived
global_defs {
notification_email {
admin@example.com
}
notification_email_from www.example.com
smtp_server www.example.com
smtp_connect_timeout 30
router_id linux02
}
vrrp_instance VI_1 { # Определение экземпляра
State Backup # Задайте резервную копию, а затем контролируйте, какой из них является основным по приоритету.
Интерфейс eth0
virtual_router_id 51
приоритетность 50
advert_int 1 # может быть автоматически
аутентификация {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.199 # Включить eth0: 0 здесь с тегом label
}
}
virtual_server www.example.com 80 { Внизу - определение LVS.
delay_loop 6
rr lb_algo
lb_kind DR
nat_mask www.example.com
Протокол TCP
real_server www.example.com 80 { Один из них - это локальный веб-сервис.
Вес 1
TCP_CHECK {
connect_timeout 3
}
}
real_server www.example.com 80 { # Другой веб-сервис
Вес 1
TCP_CHECK {
connect_timeout 3
}
}
}
После того, как файл конфигурации keepalived будет изменен, начните изменять страницу apache по умолчанию vi / opt / apache / apache-2.4.29 / htdocs / index.html, если содержимое двух файлов по умолчанию будет отличаться.
Адрес обратной связи загрузки локального устройства
Как известно, при использованииLvsРежим dr, необходимо запустить адрес обратной связи на realserver, поэтому, чтобы создать балансировку нагрузки на двух машинах, конечно же, необходимо запустить соответствующий адрес обратной связи на локальном компьютере, чтобы реализовать нужную функцию, сценарий следующий: (Снижеследующие два сценария являются оригинальными комарами, адрес сайта комаров http: / / www.wenzizone.cn)
# vi / usr / local /bin / startlo
#!/ bin / SH
VIP = 10.0.0.199
Дело «$1» в
стоп)
# закрыть интерфейс lo: 0
echo $" Закрыть интерфейс lo: 0 "
/ sbin / route del -host $VIP dev lo: 0
/ sbin / ifconfig lo: 0 down
echo "0 " > / proc / sys / net / ipv4 / conf / all /arp_announce
echo "0 " > / proc / sys / net / ipv4 / conf / all /arp_ignore
echo "0 " > / proc / sys / net / ipv4 / conf / lo /arp_announce
echo "0 " > / proc / sys / net / ipv4 / conf / lo /arp_ignore
;;
старт)
# start lo: 0 interface
echo $" Запуск интерфейса lo: 0 "
/ sbin / ifconfig lo: 0 $VIP / 32 broadcast $VIP up
/ sbin / route add-host $VIP dev lo: 0
echo "2 " > / proc / sys / net / ipv4 / conf / all /arp_announce
echo "1 " > / proc / sys / net / ipv4 / conf / all /arp_ignore
echo "2 " > / proc / sys / net / ipv4 / conf / lo /arp_announce
echo "1 " > / proc / sys / net / ipv4 / conf / lo /arp_ignore
;;
*)
echo $" Usage: $0 (start)| стоп) "
Выход 1
;;
esac
Но поскольку в Keepalived нет directord, который контролирует запуск и остановку адресов loop, как в heartbeat, нам нужно искусственно судить, на какой машине следует запустить адрес loop, поэтому Mosquito написал следующий сценарий:
# vi / usr / local / bin / check_interface
#!/ bin / Bash
#
Автор: комары
#
# Описание сценария:
# Этот сценарий определяет, является ли текущий сервер master
# Если текущий сервер не является master, то запускает адрес обратной связи
# В противном случае прекратить обратный адрес
#
# VIP_interface, пожалуйста, настроите его в соответствии с вашим условием, это интерфейс VIP
# lo_interface, пожалуйста, настроите его в соответствии со своими обстоятельствами, это интерфейс обратной связи.
VIP_interface = " eth0: 0 ′′
lo_interface = " lo: 0 ′′
i = 10.
$i! = 0]
do
/ sbin / ifconfig| grep $VIP_interface & > / dev / null
retval = $?
If [! then $retval -eq 0];
/ sbin / ifconfig| grep $lo_interface & > / dev / null
retval = $?
If [! then $retval -eq 0];
/ usr / local / bin / startlo
fi
другое
/ sbin / ifconfig| grep $lo_interface & > / dev / null
retval = $?
if [$retval -eq 0];then
/ usr / local / bin / startlo
fi
fi
i = 10.
Спят 10
Done
После того, как обе машины создали два новых сценария, все готово для тестирования.
Сначала настроите права исполнения для всех необходимых сценариев.Запустить соответствующие сервисы
А. Apache не запускается.
В, # / usr / local / bin / check_interface
C, # service keepalived start
Если нет никаких сообщений об ошибках, то сервис запустился, журнал keepalived хранится в / var / log / messages, если есть ошибки, пожалуйста, проверьте себя
Тест 1: Испытание балансировки нагрузки в текущем состоянии
Метод: Откройте браузер IE, введите http: / / 192.168.211.110, затем непрерывно используйте ctrl + F5 для принудительного обновления, вы можете увидеть, что содержимое веб-страницы переключается между linux01 и linux02
Тест 2: Остановить linux01 keepalive, проверить балансировку нагрузки
Метод:
A, / etc / init.d / keeppalived stop
Затем подождите несколько секунд, чтобы увидеть, что адрес lo: 0 на linux01 запустился, а lo: 0 на linux02 остановился.
B. Откройте браузер IE, введите http: / / 192.168.211.110, а затем продолжайте использовать ctrl + F5 для принудительного обновления, вы можете увидеть, что содержимое веб-страницы переключается в linux01 и linux02
Тест 3: Откройте Keepalived на Linux01 и посмотрите, переходит ли Linux01 обратно в Master
Метод: Запустите программу keepalived, используйте ifconfig для наблюдения за запуском интерфейса eth0: 0 на linux01, а также запуск интерфейса lo: 0 на linux02, а также запуск интерфейса eth0; 0 на linux02
Учебное пособие по созданию высокодоступной балансировки нагрузки на двух компьютерах Apache закончено. Есть вопросы, которые можно обсудить вместе ниже.