...
Deck of Cards |
---|
|
Card |
---|
default | true |
---|
id | 1 |
---|
label | Passo 1 |
---|
|
|
Card |
---|
|
- Configure o Apache para carregar os módulos necessários (comumente feito através do arquivo /etc/apache2/mods-enabled/mod_proxy.load), conforme abaixo.
Nota |
---|
A ordem de carregamento dos módulos é extremamente importante. |
Bloco de código |
---|
| LoadModule lbmethod_bybusyness_module /usr/lib/apache2/modules/mod_lbmethod_bybusyness.so
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule slotmem_shm_module /usr/lib/apache2/modules/mod_slotmem_shm.so
LoadModule proxy_balancer_module /usr/lib/apache2/modules/mod_proxy_balancer.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadModule lbmethod_byrequests_module /usr/lib/apache2/modules/mod_lbmethod_byrequests.so |
|
Card |
---|
| - Habilite o mod_proxy (em geral isso é feito criando o arquivo /etc/apache2/sites-enabled/mod_proxy.conf).
Bloco de código |
---|
| Header add Set-Cookie "FLUIGCOOKIE=%{UNIQUE_ID}e.%{BALANCER_WORKER_ROUTE}e; path=/" env=!VARCOOKIE
<VirtualHost *:80>
ProxyRequests Off
ProxyPreserveHost On
<Proxy balancer://mycluster>
BalancerMember http://{ip servidor 1}:8080 route=fluig1
BalancerMember http://{ip servidor 1}:8230 route=fluig2
BalancerMember http://{ip servidor 2}:8230 route=fluig3
ProxySet stickysession=FLUIGCOOKIE
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
<Location />
Order allow,deny
Allow from all
</Location>
ProxyPass / balancer://mycluster/ stickysession=FLUIGCOOKIE nofailover=Off
ProxyPassReverse / balancer://mycluster/
</VirtualHost> |
Aviso |
---|
| - Cada “BalancerMember” indica um servidor e deve apontar para o IP e porta corretos.
- Um cookie chamado “FLUIGCOOKIE” é criado para manter a afinidade da sessão. Sem o cookie, o procedimento não irá funcionar.
|
|
Card |
---|
id | 4 |
---|
label | Passo 4 |
---|
title | Load Balance RealTime |
---|
| Aviso |
---|
| O procedimento abaixo deve ser realizado para utilizar o serviço de Realtime em Load balance. |
Bloco de código |
---|
| LoadModule rewrite_module /usr/lib/apache2/modules/mod_proxy_wstunnel.so |
- Realizadas as configurações acima, adicionar o código abaixo ao arquivo de configuração do servidor (Passo 3).
Bloco de código |
---|
Listen 8888
Header add Set-Cookie "SERVERID=sticky.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
AllowConnect 8888
<VirtualHost *:8888>
ProxyRequests Off
ProxyPreserveHost On
<Proxy balancer://mycluster1>
BalancerMember http://{ip servidor realtime1}:8888 route=load1
BalancerMember http://{ip servidor realtime2}:8888 route=load2
ProxySet stickysession=SERVERID
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Allow from all
</Location>
<Location />
Order allow,deny
Allow from all
</Location>
ProxyPass / balancer://mycluster1/ stickysession=SERVERID nofailover=Off
ProxyPassReverse / balancer://mycluster1/
</VirtualHost>
Listen 7777
Header add Set-Cookie "SERVERID=sticky.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
AllowConnect 7777
<VirtualHost *:7777>
ProxyRequests Off
ProxyPreserveHost On
<Proxy "balancer://nodes_polling">
BalancerMember http://{ip servidor realtime1}:7777 route=read1
BalancerMember http://{ip servidor realtime2}:7777 route=read2
ProxySet stickysession=SERVERID
</Proxy>
<Proxy "balancer://nodes_ws">
BalancerMember ws://{ip servidor realtime1}:7777 route=read1
BalancerMember ws://{ip servidor realtime2}:7777 route=read2
ProxySet stickysession=SERVERID
</Proxy>
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) balancer://nodes_ws/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) balancer://nodes_polling/$1 [P,L]
</VirtualHost> |
|
|
Ambiente HTTPS
...
Ambientes HTTPS
Quando o usuário estiver usando um ambiente HTTPS, é necessário que as flags de segurança "Secure" e "HttpOnly" dos cookies estejam habilitadas na sessão. Para isso, siga a instrução abaixo:
- Editar o arquivo /etc/apache2/sites-enabled/mod_proxy.conf e adicionar a seguinte linha no final do arquivo:
Bloco de código |
---|
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure |