minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1: Visão geral do caso
2: Conhecimento pré-caso
3: Ambiente do caso
[root@localhost ~]# yum -y instalar 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]# fazer && fazer instalar
[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 "teste web01" > teste.html
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx ##Inicie o processo nginx
[root@localhost ~]# netstat -anpt | grep nginx
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y instalar 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]# faça TARGET=linux26
[root@localhost haproxy-1.5.19]# fazer instalação
Observação:
linux22 para Linux 2.2
linux24 para Linux 2.4 e superior (padrão)
linux24e para Linux 2.4 com suporte para um epoll funcional (> 0,21)
linux26 para Linux 2.6 e superior
solaris para Solaris 8 ou 10 (outros não testados)
freebsd para FreeBSD 5 a 8.0 (outros não testados)
openbsd para OpenBSD 3.1 a 4.6 (outros não testados)
cygwin para Cygwin
genérico para qualquer outro sistema operacional.
personalizado para ajustar manualmente cada configuração
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# exemplos de cp/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.5.19]# exemplos de cp/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) Introdução à configuração Haproxy
[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
global
registro 127.0.0.1 local0
log 127.0.0.1 local1 aviso
#log loghost local0 informações
maxcon 4096
uid 99
guia 99
demônio
#depurar
#quieto
padrões
registro global
modo http
opção httplog
opção dontlognull
3 tentativas
# reexpedir
Maxcon 2000
contimeout 5000
tempo limite 50000
tempo limite srv 50000
ouvir webcluster 0.0.0.0:80
opção httpchk GET /index.html
equilíbrio roundrobin
servidor inst1 192.168.1.61:80 verificar inter 2000 queda 3
servidor inst2 192.168.1.62:80 verificar inter 2000 queda 3
Você pode adicionar peso após cada servidor para definir o valor do peso.
servidor inst1 192.168.1.61:80 verificar inter 2000 queda 3peso 1
servidor inst2 192.168.1.62:80 verificar inter 2000 queda 3peso 2
Explicação de cada afirmação
global
registro 127.0.0.1 local0 \configurar o registro,local0É o dispositivo de log, o padrão é o log do sistema
log 127.0.0.1 local1 aviso \O nível de registro éperceber
#log loghost local0 informações
maxconn 4096 \Número máximo de conexões
uid 99 \do utilizadoruid
guia 99 \do utilizadorcerto
daemon \Executar como um processo daemon
#depurar \Modo de depuração, saída de informações de inicialização para saída padrão
#quieto \Modo silencioso, sem saída na inicialização
padrões
registro global \usargloballog definido em
modo http \O modo éhttp
opção httplog \usarhttpO formato do registro
opção dontlognull \garantirHAProxyNão registre os pacotes de pulsação enviados pelo balanceador de carga de nível superior para detectar dados de status.
novas tentativas 3 \Verifique o número de falhas de conexão do nó, que excede3O nó é considerado indisponível
# reexpedir\quando carregarQuando o valor for muito alto, as conexões que foram processadas na fila atual por muito tempo serão encerradas automaticamente.
maxconn 2000 \Número máximo de conexões
contimeout 5000 \Tempo limite de conexãoEM
tempo limite 50000Tempo limite do clienteEM
tempo limite srv 50000Tempo limite do servidorEM
ouvir webcluster 0.0.0.0:80 \Definir cluster e números de porta de escuta
opção httpchk GET /index.html \Verifique o servidoríndice.htmldocumento,Configurações de URL de detecção de pulsação
equilíbrio roundrobin \O algoritmo de agendamento de balanceamento de carga é round robin
servidor inst1 192.168.1.61:80 verificar inter 2000 queda 3 \Definir nós online
servidor inst2 192.168.1.62:80 verificar inter 2000 queda 3
verificar inter 2000é detectar a frequência dos batimentos cardíacos (a cada2000msDetectado uma vez),queda 3sim3O servidor é considerado indisponível em caso de falha
Na nova versão, as configurações de timeout foram ajustadas, conforme segue:
contimeout é substituído por timeout connect:Defina o período de tempo limite que o haproxy aguarda para encaminhar solicitações do cliente para o servidor back-end
clitimeout é substituído por cliente de tempo limite:O período de tempo limite para inatividade do cliente é o tempo que leva para o aplicativo se conectar ao haproxy
srvtimeout é substituído por servidor de tempo limite:Depois que o cliente estabelece uma conexão com o servidor, o tempo limite de espera do servidor é o tempo que leva para o haproxy se conectar ao servidor web back-end.
Observação:
haproxyExistem oito algoritmos de escalonamento
chroot /usr/compartilhar/haproxy \Isso é para alterar o local do diretório raiz referenciado quando o programa é executado. Se você tiver esse código, será necessário criar esse diretório.
Sobre níveis de registro
Nível estático DEBUG
DEBUG Level aponta que eventos de informações refinadas são muito úteis para depuração de aplicativos.
Nível estático INFO
O nível INFO indica que a mensagem destaca o processo em execução do aplicativo em um nível granular.
Nível estático WARN
O nível WARN indica uma situação de erro potencial.
Nível estático ERRO
O nível ERROR indica que embora ocorra um evento de erro, ele ainda não afeta a operação contínua do sistema.
Nível estático FATAL
O nível FATAL indica que cada evento de erro grave fará com que o aplicativo seja encerrado.
Além disso, existem dois níveis de registro especiais disponíveis:
Nível estático TODOS
ALL Level é o nível mais baixo e é usado para ativar todos os registros.
Nível estático DESLIGADO
OFF Level é o nível mais alto e é usado para desligar todos os registros.
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy iniciar
http://192.168.1.60/teste.html
Atualize a página para testar
ou teste usando script
[root@localhost ~]# para i em $(seq 10); faça curl http://192.168.1.60/test.html ;feito
O Haproxy não registra logs por padrão. Além de especificar a saída do log na seção global em haproxy.conf, você também precisa configurar o arquivo de configuração de log do sistema.
método um:
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
global
# registro 127.0.0.1 local0
# log 127.0.0.1 local1 aviso
#log loghost local0 informações
maxcon 4096
chroot /usr/compartilhar/haproxy
uid 99
guia 99
demônio
#depurar
#quieto
log /dev/log local0 informações
log /dev/log local0 aviso
[root@localhost haproxy-1.4.24]# toque em /etc/rsyslog.d/haproxy.conf
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf
se ($programname == 'haproxy' e $syslogseverity-text == 'info') então -/var/log/haproxy/haproxy-info.log
& ~
se ($programname == 'haproxy' e $syslogseverity-text == 'notice') então -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost haproxy-1.4.24]# serviço rsyslog reiniciar
[root@localhost ~]#/etc/init.d/haproxy reiniciar
[root@localhost ~]# cat /var/log/haproxy/haproxy-info.log
Método dois:
(1) Edite /etc/haproxy/haproxy.conf
[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
global
registro 127.0.0.1 local3
#local3 é o dispositivo, correspondente à configuração em /etc/rsyslog.conf, e o nível de informações do log é reciclado por padrão.
(2) Escreva o arquivo de log haproxy
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~
Observação:
$ModLoad imudpProtocolo UDP para coleta de logs
$UDPServerRun 514Especifique o número da porta usada para coleta de logs
local3.* /var/log/haproxy.logEspecifique o local de armazenamento de log
(3) Configure o arquivo de configuração principal do rsyslog e habilite o registro remoto (opcional)
[root@localhost ~]# vim /etc/sysconfig/rsyslog
OPÇÕES_SYSLOGD=”-c 2 -r -m 0″
#-c 2 Use o modo de compatibilidade, o padrão é -c 5
#-r Ativar registro remoto
#-m 0 marca carimbo de data/hora.A unidade é minutos. Quando é 0, significa que a função está desabilitada.
(4) Reinicie os serviços haproxy e rsyslog
[root@localhost ~]# systemctl reiniciar rsyslog
[root@localhost ~]# systemctl reiniciar haproxy
(5) Verifique o log depois de visitar o site
[root@localhost ~]# gato /var/log/haproxy.log
Extensão: proxy mysql
ouvir mysql 0.0.0.0:3306
servidor mysql1 192.168.10.205:3306 verificar porta 3306 maxconn 300