Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Alteração item 7

...

Deck of Cards
historyfalse
idModProxy



Card
defaulttrue
id1
labelPasso 1



Card
id2
labelPasso 2


  • 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
languagetext
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
  • A primeira linha indica o tipo de balanceamento que será feito. No exemplo acima, ele é feito por carga do servidor. Para conhecer outras formas, consulte o manual do Apache.


Card
id3
labelPasso 3
  • Habilite o mod_proxy (em geral isso é feito criando o arquivo /etc/apache2/sites-enabled/mod_proxy.conf).
Bloco de código
languagexml
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
titleAtenção
  • 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
id4
labelPasso 4
titleLoad Balance RealTime
Aviso
titleImportante

O procedimento abaixo deve ser realizado para utilizar o serviço de Realtime em Load balance.

Passos para usar o Load Balance do Realtime

Bloco de código
languagetext
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