Balanceamento de Carga e Alta Disponibilidade usando IPTABLES
Publicado por Daniel Maciel Monteiro 30/12/2008
[ Hits: 13.406 ]
Este script foi implantado em um ambiente de teste ultilizando um servidor DNS, dois servidores WEB(Web Apache) e um servidor de arquivos.
Os servidores WEB são idênticos, onde fazem NFS com o servidor de arquivos, na qual estão localizados as páginas web. Ou seja, as webpages são comuns para os dois servidores WEB. O Script tem que estar localizado no servidor DNS.
A função do script é verificar a disponibilidade dos servidores utilizando o protocolo ICMP e fazer o balanceamento entre o mesmos.
#!/bin/bash www1=192.168.0.3 www2=192.168.0.4 if_int0=eth0 while true; do s1="0" s2="0" #TESTANDO SERVIDOR 1 if ping -c 1 -w 1 $www1 1>/dev/null 2>/dev/null; then s1="1" fi #TESTANDO SERVIDOR 2 if ping -c 1 -w 1 $www2 1>/dev/null 2>/dev/null; then s2="1" fi /sbin/iptables -D PREROUTING -t nat -t $if_int0 -j DNAT --to 192.168.0.3 2>/dev/null /sbin/iptables -D PREROUTING -t nat -t $if_int0 -j DNAT --to 192.168.0.4 2>/dev/null /sbin/iptables -D PREROUTING -t nat -t $if_int0 -j DNAT --to 192.168.0.3-192.168.0.4 2>/dev/null if [ $s1 = "1" -a $s2 = "1" ]; then echo "Server 1e2" /sbin/iptables -A PREROUTING -t nat -i $if_int0 -j DNAT --to 192.168.0.3-192.168.0.4 elif [ $s1 = "1" ]; then echo "Server 1" /sbin/iptables -A PREROUTING -t nat -i $if_int0 -j DNAT --to 192.168.0.3 if [ $s2 = "1" ]; then echo "Server 2" /sbin/iptables -A PREROUTING -t nat -i $if_int0 -j DNAT --to 192.168.0.4 else echo "Servidores 1 e 2 não respondem!" fi sleep 10 done
Script para instalação do java no kurumin 4
Corrigindo problema com Splash no Ubuntu
Script para gerar ISO do OpenBSD
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Acessar ftp por nome ao invés de ip [RESOLVIDO] (5)
Estou com sede em aprender sobre o nosso querido Linux. (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta