Como todos sabemos, squid es un servidor proxy de almacenamiento en caché que admite protocolos como HTTP, HTTPS, FTP y más. En otras palabras, calamar es conocido como un servidor proxy web que ayuda a los ISP y otras organizaciones a reducir su ancho de banda y también mejora considerablemente el tiempo de respuesta, ya que almacena en caché localmente el contenido más frecuente. Cada vez que llega una nueva solicitud, Squid la sirve desde su caché si está en caché; de lo contrario, la obtendrá del servidor remoto y guardará su contenido en caché para futuras solicitudes.
En este artículo, demostraremos cómo configurar un clúster de squid (servidor proxy) de dos nodos mediante Pacemaker en el sistema CentOS 7 o RHEL 7.
Los siguientes son los detalles de mi laboratorio que he usado para este artículo,
- Servidor Squid 1 (squid01.linuxtechi.lan) – 192.168.1.21 – CentOS 7 mínimo/RHEL 7
- Squid Server 2 (squid02.linuxtechi.lan) – 192.168.1.22 – mínimo CentOS 7/RHEL 7
- VIP del servidor Squid:192.168.1.20
- Cortafuegos activado
- SELinux habilitado
Paso:1) Agregue el nombre de host en el archivo /etc/hosts y aplique todas las actualizaciones
Agregue las siguientes líneas en el archivo /etc/hosts de ambos servidores Squid.
192.168.1.21 squid01.linuxtechi.lan squid01 192.168.1.22 squid02.linuxtechi.lan squid02
Instale todas las actualizaciones usando el comando de actualización debajo de yum y luego reinicie los nodos
[[email protected] ~]# yum update -y && reboot [[email protected] ~]# yum update -y && reboot
Paso:2) Instalar los paquetes de agentes de esgrima y marcapasos en ambos servidores squid
Ejecute el siguiente comando yum en ambos servidores para instalar paquetes de marcapasos, pcs y esgrima,
[[email protected] ~]# yum install pcs pacemaker fence-agents-all -y [[email protected] ~]# yum install pcs pacemaker fence-agents-all -y
Una vez que los paquetes anteriores estén instalados en ambos servidores, inicie y habilite el servicio de marcapasos (pcsd) usando los siguientes comandos,
[[email protected] ~]# systemctl start pcsd.service [[email protected] ~]# systemctl enable pcsd.service [[email protected] ~]# systemctl start pcsd.service [[email protected] ~]# systemctl enable pcsd.service
Como en mi configuración de vuelta, el servicio de firewall del sistema operativo se está ejecutando y habilitado, así que configure las reglas de firewall para alta disponibilidad o servicio de agrupación, ejecute el siguiente "firewall-cmd ” comandos en los calamares,
[[email protected] ~]# firewall-cmd --permanent --add-service=high-availability success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]# [[email protected] ~]# firewall-cmd --permanent --add-service=high-availability success [[email protected] ~]# firewall-cmd --reload success [[email protected]2 ~]#
Paso:3) Autorizar servidores squid y formar un clúster squid
Para formar un clúster, ambos nodos / servidores deben autorizarse, primero configuremos la contraseña de "hacluster ” usuario,
[[email protected] ~]# echo "password_here" | passwd --stdin hacluster [[email protected] ~]# echo "password_here" | passwd --stdin hacluster
Ahora use el siguiente "autorización de clúster de pcs ” desde cualquiera de los servidores squid para autorizar ambos servidores usando las credenciales de hacluster.
[[email protected] ~]# pcs cluster auth squid01.linuxtechi.lan squid02.linuxtechi.lan Username: hacluster Password: squid02.linuxtechi.lan: Authorized squid01.linuxtechi.lan: Authorized [[email protected] ~]#
Use a continuación "configuración de clúster de piezas ” desde cualquiera de los nodos para formar un clúster, en mi caso lo estoy ejecutando desde squid01 y el nombre de mi clúster es “squid_cluster ”
[[email protected] ~]# pcs cluster setup --start --name squid_cluster squid01.linuxtechi.lan squid02.linuxtechi.lan
La salida del comando anterior debería ser similar a la siguiente:
Habilite el servicio de clúster de pcs para que se inicie automáticamente durante el reinicio, ejecute el siguiente comando desde cualquiera de los servidores squid
[[email protected] ~]# pcs cluster enable --all squid01.linuxtechi.lan: Cluster Enabled squid02.linuxtechi.lan: Cluster Enabled [[email protected] ~]#
Use los siguientes comandos para verificar el estado del clúster,
[[email protected] ~]# pcs cluster status [[email protected] ~]# pcs status
Paso:4) Instale el paquete Squid en ambos servidores y desactive la valla
Ejecute el siguiente comando yum en ambos servidores para instalar paquetes de squid (servidor proxy),
[[email protected] ~]# yum install squid -y [[email protected] ~]# yum install squid -y
Permita el puerto squid (3128) en el firewall del sistema operativo usando el siguiente comando
[[email protected] ~]# firewall-cmd --permanent --add-service=squid success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]# [[email protected] ~]# firewall-cmd --permanent --add-service=squid success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
En mi laboratorio no tengo ningún agente o dispositivo de esgrima, así que lo estoy deshabilitando usando los siguientes comandos,
[[email protected] ~]# pcs property set stonith-enabled=false [[email protected] ~]# pcs property set no-quorum-policy=ignore [[email protected] ~]#
Paso:5) Configurar los recursos de Squid Cluster y el grupo de clúster
En la configuración de mi laboratorio, tengo dos discos compartidos de 1 GB y 12 GB, estos discos están asignados a ambos servidores.
En el clúster montaremos el /etc/squid (es decir, archivos de configuración de squid) sistema de archivos en un disco de 1 GB y “/var/spool/squid ” (es decir, el directorio de caché de squid) se montará en un disco de 12 GB
- /dev/sdb (disco de 1 GB) – /etc/squid
- /dev/sdc (disco de 12 GB) – /var/spool/squid
Como estos discos son visibles en ambos servidores Squid, cree una partición en /dev/sdb y /dev/sdc usando el comando fdisk desde cualquiera de los servidores Squid y luego formatéelos con el sistema de archivos xfs usando el comando mkfs.xfs
Actualmente, todos los archivos de configuración de squid están en la carpeta local /etc/squid. Copie los datos del sistema de archivos local /etc/squid al disco compartido (/dev/sdb1)
[roo[email protected] ~]# mount /dev/sdb1 /mnt/ [[email protected] ~]# cp -av /etc/squid/* /mnt/ [[email protected] ~]# umount /mnt/
Ahora cree dos recursos del sistema de archivos, uno para el sistema de archivos /etc/squid y otro para /var/spool/squid
Ejecute lo siguiente “pcs resource create ” desde cualquiera de los servidores squid para crear un recurso del sistema de archivos, en mi caso tomando el nombre del recurso del sistema de archivos como “squidfs1 ” &“calamares2 ” y el nombre del grupo como “squidgrp ”
[[email protected] ~]# pcs resource create squidfs1 Filesystem device=/dev/sdb1 directory=/etc/squid fstype=xfs --group squidgrp [[email protected] ~]# pcs resource create squidfs2 Filesystem device=/dev/sdc1 directory=/var/spool/squid fstype=xfs --group squidgrp [[email protected] ~]#
Defina el recurso squid (servicio systemd) usando el comando de recursos pcs, ejecute el siguiente comando desde cualquiera de los servidores squid
[[email protected] ~]# pcs resource create proxy systemd:squid op monitor interval=10s --group squidgrp [[email protected] ~]#
Defina squid vip para su grupo, en mi caso usaré "192.168.1.20 ” como squid vip, esta IP flotará entre estos servidores, los usuarios finales o los clientes de squid usarán esta IP como IP del servidor proxy de squid mientras configuran sus configuraciones de proxy y también usarán el puerto de squid predeterminado 3128.
[[email protected] ~]# pcs resource create squid_vip ocf:heartbeat:IPaddr2 ip=192.168.1.20 cidr_netmask=24 op monitor interval=30s --group squidgrp [[email protected] ~]#
Ahora verifique si todos los recursos del clúster están iniciados o no. Ejecute "estado de piezas ” comando desde cualquiera de los servidores squid
[[email protected] ~]# pcs status Cluster name: squid_cluster Stack: corosync Current DC: squid01.linuxtechi.lan (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum Last updated: Wed Mar 27 06:59:59 2019 Last change: Wed Mar 27 06:59:02 2019 by root via cibadmin on squid01.linuxtechi.lan 2 nodes configured 4 resources configured Online: [ squid01.linuxtechi.lan squid02.linuxtechi.lan ] Full list of resources: Resource Group: squidgrp squidfs1 (ocf::heartbeat:Filesystem): Started squid01.linuxtechi.lan squidfs2 (ocf::heartbeat:Filesystem): Started squid01.linuxtechi.lan proxy (systemd:squid): Started squid01.linuxtechi.lan squid_vip (ocf::heartbeat:IPaddr2): Started squid01.linuxtechi.lan Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [[email protected] ~]#
Como podemos ver arriba, todos los recursos se inician en el servidor squid01. Verifiquemos el estado del servicio Squid y squid vip
[[email protected] ~]# systemctl status squid [[email protected] ~]# ip a s
La salida de los dos comandos anteriores debería ser similar a la siguiente:
Eso es todo de este artículo, ahora puede configurar las ACL que se adapten a su entorno en el archivo /etc/squid.conf. Comparta sus opiniones y comentarios.