моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1: Обзор случая
2: Предварительные знания
3: Обстановка дела
[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc*
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz
[root@localhost ~]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.12.0]# сделать && сделать установку
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/0
[root@localhost html]# echo "test web01" > test.html
[root@localhost ~]# systemctl остановить firewalld
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx ##Запуск процесса nginx
[root@localhost ~]# netstat -anpt | grep nginx
[root@localhost ~]# systemctl остановить firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install pcre-devel bzip2-devel gcc*
[root@localhost ~]# tar zxvf haproxy-1.5.19.tar.gz
[root@localhost ~]# cd haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# сделать TARGET=linux26
[root@localhost haproxy-1.5.19]# сделать установку
Примечание:
linux22 для Linux 2.2
linux24 для Linux 2.4 и выше (по умолчанию)
linux24e для Linux 2.4 с поддержкой рабочего epoll (> 0.21)
linux26 для Linux 2.6 и выше
solaris для Solaris 8 или 10 (другие не тестировались)
freebsd для FreeBSD 5 - 8.0 (остальные не тестировались)
openbsd для OpenBSD 3.1 - 4.6 (остальные не тестировались)
cygwin для Cygwin
универсальный для любой другой ОС.
настраиваемый для ручной настройки каждого параметра
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy
[root@localhost ~]# chkconfig --add haproxy
(3) Введение в настройку Haproxy
[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
Глобальный
журнал 127.0.0.1 локальный0
журнал 127.0.0.1 local1 уведомление
#log loghost local0 информация
максконн 4096
идентификатор 99
гид 99
демон
#отлаживать
#тихий
значения по умолчанию
глобальный журнал
режим http
опция httplog
опция dontlognull
повторы 3
# повторная отправка
максконн 2000
contimeout 5000
клитаймаут 50000
srvtimeout 50000
прослушивание вебкластера 0.0.0.0:80
опция httpchk GET /index.html
балансировка по круговой системе
сервер inst1 192.168.1.61:80 проверка inter 2000 fall 3
сервер inst2 192.168.1.62:80 проверка inter 2000 fall 3
Вы можете добавлять вес после каждого сервера, чтобы установить значение веса.
сервер inst1 192.168.1.61:80 проверка inter 2000 fall 3вес 1
сервер inst2 192.168.1.62:80 проверка inter 2000 fall 3вес 2
Объяснение каждого утверждения
Глобальный
журнал 127.0.0.1 локальный0 \настроить ведение журнала,локальный0Является устройством регистрации, по умолчанию используется системный журнал.
журнал 127.0.0.1 local1 уведомление \Уровень журналауведомление
#log loghost local0 информация
максконн 4096 \Максимальное количество подключений
идентификатор пользователя 99 \пользовательuid
гид 99 \пользовательгид
демон \Запуск как процесс-демон
#отладка \Режим отладки, вывод информации о запуске на стандартный вывод
#тихий \Тихий режим, нет вывода при запуске
значения по умолчанию
глобальный журнал \использоватьглобулажурнал определен в
режим http \Режимhttp
опция httplog \использоватьhttpФормат ведения журнала
опция dontlognull \гарантироватьHAProxyНе записывайте пакеты пульса, отправленные балансировщиком нагрузки верхнего уровня, для обнаружения данных о состоянии.
повторы 3 \Проверить количество неудачных подключений узла, превышающее3Узел считается недоступным
# повторная отправка\при загрузкеКогда значение очень велико, соединения, которые долгое время обрабатывались в текущей очереди, будут автоматически прекращены.
максконн 2000 \Максимальное количество подключений
contimeout 5000 \Время соединения вышлоРС
клитаймаут 50000Тайм-аут клиентаРС
srvtimeout 50000Тайм-аут сервераРС
прослушивание вебкластера 0.0.0.0:80 \Определить номера кластера и портов прослушивания
опция httpchk GET /index.html \Проверьте сервериндекс.htmlдокумент,Настройки URL-адреса обнаружения пульса
балансировка по кругу \Алгоритм планирования балансировки нагрузки является циклическим.
сервер inst1 192.168.1.61:80 проверка inter 2000 fall 3 \Определите онлайн-узлы
сервер inst2 192.168.1.62:80 проверка inter 2000 fall 3
проверить интер 2000заключается в определении частоты сердцебиения (каждый2000мсОбнаружено один раз),падение 3да3Сервер считается недоступным в случае сбоя
В новой версии настройки таймаута изменены следующим образом:
contimeout заменяется на timeout Connect:Определите период ожидания, в течение которого прокси-сервер ожидает пересылки клиентских запросов на внутренний сервер.
cltimeout заменяется клиентом таймаута:Период ожидания бездействия клиента — это время, необходимое приложению для подключения к haproxy.
srvtimeout заменяется сервером таймаута:После того, как клиент устанавливает соединение с сервером, период ожидания сервера — это время, необходимое haproxy для подключения к внутреннему веб-серверу.
Примечание:
haproxyСуществует восемь алгоритмов планирования.
chroot /usr/share/haproxy \То есть изменить местоположение корневого каталога, на который ссылается при выполнении программы. Если у вас есть этот код, вам необходимо создать этот каталог.
Об уровнях журнала
статический уровень DEBUG
Уровень DEBUG указывает на то, что подробные информационные события очень полезны для отладки приложений.
Статический уровень ИНФОРМАЦИЯ
Уровень INFO указывает, что сообщение выделяет запущенный процесс приложения на общем уровне.
статический уровень WARN
Уровень WARN указывает на потенциальную ошибочную ситуацию.
ОШИБКА статического уровня
Уровень ERROR указывает на то, что хотя и произошло событие ошибки, оно все равно не влияет на дальнейшую работу системы.
статический уровень FATAL
Уровень FATAL указывает, что каждая серьезная ошибка приведет к завершению работы приложения.
Кроме того, доступны два специальных уровня ведения журнала:
статический уровень ВСЕ
Уровень ALL — это самый низкий уровень, который используется для включения всех журналов.
статический уровень ВЫКЛ
Уровень OFF — это самый высокий уровень, который используется для отключения всех журналов.
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy запустить
http://192.168.1.60/test.html
Обновите страницу для проверки
или протестируйте с помощью скрипта
[root@localhost ~]# for i in $(seq 10); сделать curl http://192.168.1.60/test.html ;готово
Haproxy не записывает журналы по умолчанию. Помимо указания вывода журнала в глобальном разделе haproxy.conf, вам также необходимо настроить файл конфигурации системного журнала.
метод первый:
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
Глобальный
# журнал 127.0.0.1 локальный0
# журнал 127.0.0.1 local1 уведомление
#log loghost local0 информация
максконн 4096
chroot /usr/share/haproxy
идентификатор 99
гид 99
демон
#отлаживать
#тихий
log /dev/log local0 информация
log /dev/log local0 уведомление
[root@localhost haproxy-1.4.24]# коснитесь /etc/rsyslog.d/haproxy.conf
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf
если ($programname == 'haproxy' и $syslogseverity-text == 'info') тогда -/var/log/haproxy/haproxy-info.log
& ~
если ($programname == 'haproxy' и $syslogseverity-text == 'notice') тогда -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost haproxy-1.4.24]# перезапуск службы rsyslog
[root@localhost ~]#/etc/init.d/haproxy перезапустить
[root@localhost ~]# cat /var/log/haproxy/haproxy-info.log
Метод второй:
(1) Отредактируйте /etc/haproxy/haproxy.conf.
[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
Глобальный
журнал 127.0.0.1 локальный3
#local3 — это устройство, соответствующее конфигурации в /etc/rsyslog.conf, а уровень информации журнала перерабатывается по умолчанию.
(2) Записать файл журнала haproxy.
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~
Примечание:
$ModLoad imudpПротокол UDP для сбора логов
$UDPServerRun 514Укажите номер порта, используемый для сбора журналов.
local3.* /var/log/haproxy.logУкажите место хранения журнала
(3) Настройте основной файл конфигурации rsyslog и включите удаленное ведение журнала (необязательно).
[root@localhost ~]# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-c 2 -r -m 0"
#-c 2 Использовать режим совместимости, по умолчанию -c 5
#-r Включить удаленное ведение журнала
#-m 0 отметить временную метку.Единица измерения — минуты. Если значение равно 0, это означает, что функция отключена.
(4) Перезапустите службы haproxy и rsyslog.
[root@localhost ~]# systemctl перезапускает rsyslog
[root@localhost ~]# systemctl перезапустить haproxy
(5) Проверьте журнал после посещения веб-сайта.
[root@localhost ~]# cat /var/log/haproxy.log
Расширение: прокси MySQL
прослушивание mysql 0.0.0.0:3306
сервер mysql1 192.168.10.205:3306 проверить порт 3306 maxconn 300