Equilibrio de carga de Haproxy para construir la implementación real del clúster web

Equilibrio de carga de Haproxy para construir la implementación real del clúster web

1. Entorno experimental

Prepare cuatro máquinas virtuales

Haproxy服务器:192.168.126.10
Nginx 服务器1192.168.126.20 (nginx服务器可以使用之前的lnmp一键部署脚本部署)
Nginx 服务器2192.168.126.30
客户端:192.168.80.40

2. Pasos de la operación experimental

(1) Implementación del servidor Haproxy

1. Apague el firewall y cargue los paquetes de software necesarios para instalar Haproxy en el directorio / opt

systemctl stop firewalld
setenforce 

0

2. Compile e instale Haproxy

yum install -y pcre-devel bzip2-devel gcc gcc-c++ make

tar zxvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install

Descripción de parámetros:

TARGET = linux26 #Kernel version, #Use
uname -r para ver el kernel, como: 2.6.18-371.el5, luego use TARGET = linux26 para este parámetro; use TARGET = linux2628 si el kernel es mayor que 2.6.28

ARCH = x86_64 # dígitos del sistema, sistema de 64 bits

Inserte la descripción de la imagen aquí

3. Configuración del servidor Haproxy

mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/
cd /etc/haproxy/
vim haproxy.cfg
global
--4~5行--修改,配置日志记录,local0为日志设备,默认存放到系统日志
		log /dev/log   local0 info		
        log /dev/log   local0 notice
        #log loghost    local0 info
        maxconn 4096					#最大连接数,需考虑ulimit-n限制
--8行--注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉
        #chroot /usr/share/haproxy
        uid 99							#用户UID
        gid 99							#用户GID
        daemon							#守护进程模式

defaults        
		log     global					#定义日志为global配置中的日志定义
        mode    http					#模式为http
        option  httplog					#采用http日志格式记录日志
        option  dontlognull				#不记录健康检查日志信息
        retries 3						#检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
        redispatch						#当服务器负载很高时,自动结束当前队列处理比较久的连接
        maxconn 2000					#最大连接数
        contimeout      5000			#连接超时时间
        clitimeout      50000			#客户端超时时间
        srvtimeout      50000			#服务器超时时间

--删除下面所有listen项--,添加
listen  webcluster 0.0.0.0:80			#定义一个名为appli4-backup的应用
        option httpchk GET /test.html	#检查服务器的test.html文件
        balance roundrobin				#负载均衡调度算法使用轮询算法roundrobin
        server inst1 192.168.80.100:80 check inter 2000 fall 3		#定义在线节点
        server inst2 192.168.80.101:80 check inter 2000 fall 3

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

---------------------Descripción de parámetros--------------------------- ------------------------------------------------
equilibrio roundrobin
# Algoritmo de programación de balance de carga # Algoritmo de sondeo: roundrobin; algoritmo de conexión mínima: menos conexión; algoritmo de programación de acceso a la fuente: fuente, similar a ip_hash de nginx

check inter 2000 # indica una frecuencia de latido entre el servidor haproxy y el nodo
fall 3 # indica que la frecuencia de latido no se detecta tres veces consecutivas, y el nodo se considera no válido.
Si el nodo está configurado con "respaldo", significa que el nodo es solo un nodo de respaldo, solo el principal El nodo solo subirá cuando el nodo falle. No lleve "respaldo", lo que significa que el nodo principal proporciona servicios junto con otros nodos principales.

4. Agregue el servicio del sistema haproxy

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

service haproxy start		/etc/init.d/haproxy start

Inserte la descripción de la imagen aquí

(2) Despliegue del servidor de nodo

Puede consultar la publicación anterior del blog: Implementación de la arquitectura LNMP con un solo clic del script Shell, compilación e instalación del código fuente

systemctl stop firewalld
setenforce 0
yum install -y pcre-devel zlib-devel gcc gcc-c++ make 
useradd -M -s /sbin/nologin nginx
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make && make install
--192.168.126.20---
echo "this is test111111" > /usr/local/nginx/html/test.html
--192.168.126.30---
echo "this is test222222" > /usr/local/nginx/html/test.html
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx      #启动nginx 服务

Inserte la descripción de la imagen aquí

(Tres), pruebe el clúster web

Abra http://192.168.126.10/test.html con un navegador en el cliente y actualice constantemente el navegador para probar el efecto de equilibrio de carga

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Tres, definición de registro

# El registro haproxy predeterminado se envía al syslog del sistema, que no es muy conveniente de ver. Para administrar mejor el registro haproxy, generalmente lo definimos por separado en el entorno de producción. Es necesario registrar la información y los registros de avisos de haproxy en diferentes archivos de registro.

vim /etc/haproxy/haproxy.cfg
global
log / dev / log local0 info
log / dev / log local0 aviso

reinicio del servicio haproxy

# Necesidad de modificar la configuración de rsyslog, para facilitar la gestión. Defina la configuración relacionada con haproxy de forma independiente en haproxy.conf y colóquela en /etc/rsyslog.d/. Cuando se inicie rsyslog, cargará automáticamente todos los archivos de configuración en este directorio.

vim /etc/rsyslog.d/haproxy.conf
if ($ programname == 'haproxy' y error de análisis de KaTeX: Se esperaba 'EOF', obtuvo '&' en la posición 72:… proxy-info.log & ̲ ~ if ( programname = = 'haproxy' y $ syslogseverity-text == 'notice')
luego - / var / log / haproxy / haproxy-notice.log
& ~


#Nota : Esta parte de la configuración es para registrar el registro de información de haproxy en /var/log/haproxy/haproxy-info.log, y para registrar el registro de avisos en /var/log/haproxy/haproxy-notice.log. "& ~" significa que cuando el registro se escribe en el archivo de registro, rsyslog deja de procesar esta información.

systemctl reiniciar rsyslog.service

tail -f / var / log / haproxy / haproxy-info.log #Ver información de registro de solicitud de acceso haproxy
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51573771/article/details/113000902
Recomendado
Clasificación