19
01
2010
Balanceamento de carga com Apache e Nginx
Posted by: Tiago Cruz in Cluster, Dicas, High Availability, Linux
Se você precisa balancear a carga em seu webserver e não tem (ou não pode usar) um hardware dedicado para isso, segue alguns exemplos práticos:
Apache httpd:
NameVirtualhost *:80 <VirtualHost *:80> ServerName everlinux-homolog.com ServerAlias 200.24.12.34 10.10.23.53 10.10.23.56 ServerAdmin suporte@everlinux.com ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error_log.%Y%m%d 86400 -180" CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%Y%m%d 86400 -180" combined <Proxy balancer://everhttp> BalancerMember http://10.10.23.53:80/ ping=10 BalancerMember http://10.10.23.56:80/ ping=10 </Proxy> ProxyPreserveHost on ProxyPass / balancer://everhttp/ ProxyPassReverse /oii balancer://everhttp/ </VirtualHost>
Nginx
http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 50; upstream everbalance { ip_hash; server 10.10.23.53 max_fails=3 fail_timeout=30s; server 10.10.23.56 max_fails=3 fail_timeout=30s; } server { listen 202.34.52.24:80; server_name everlinux-homolog.com; location / { access_log /var/log/nginx/hdig.log; proxy_pass http://everbalance; proxy_set_header Host $host; } } }
As linhas “ProxyPreserveHost on” (apache) e “proxy_set_header Host $host;” (nginx) são importantes caso sua aplicação trabalhe com o nome do domínio da URL para montar alguma coisa dinamicamente. Conteúdo estático geralmente não é necessário estas variáveis.

Entries (RSS)