O failover do aplicativo não funciona no servidor web Apache 2.2 configurado com balanceador de carga BIG IP (f5)

O failover do aplicativo não funciona no servidor web Apache 2.2 configurado com balanceador de carga BIG IP (f5)

Estou usando o Apache 2.2 na frente do meu servidor de aplicativos JBOSS 5.2 em uma configuração de cluster. Os dois nós da configuração do cluster residem em hosts diferentes. Esta configuração está hospedada em servidores Linux.

Nesta configuração estou usando um Load Balancer BIG IP (F5), que fica entre o servidor Web e os servidores de aplicativos Jboss.

No caso de failover de um dos servidores de aplicação, o balanceamento de carga está funcionando bem e roteando a solicitação de um nó do cluster para o outro nó. Mas meu servidor web Apache não é capaz de rotear a solicitação para o nó de trabalho do cluster e apresenta o erro de que o servidor de aplicativos solicitado não pode ser rastreado. No entanto, quando reinicio o servidor Apache, ele parece funcionar bem e consigo acessar o aplicativo.

Parece que o Apache está armazenando em cache o URL do servidor de aplicativos e o cache não está sendo atualizado quando tento acessar o URL do servidor web após ocorrer o failover.

Abaixo está a configuração do httpd.conf que estou usando:

<VirtualHost 10.38.205.100:443>
DocumentRoot /var/www
ErrorLog /etc/httpd/logs/error.log
TransferLog /etc/httpd/logs/access_log
CustomLog /etc/httpd/logs/ssl_access.log combined
# Enable Server on this Virtual host
SSLEngine on
# Disable SSLV2 in  favour of more robust SSLV3
SSLProtocol all -SSLv2
# List of supported cryptografic server cipher suites
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
#Apache Server certificate
SSLCertificateFile /home/users/domain.com.ssl/MyWebServer.crt
#Apache server private key
SSLCertificateKeyFile /home/users/domain.com.ssl/MyWebServer.key
#Chain Certificate
SSLCertificateChainFile /home/users/domain.com.ssl/cat.txt
# It's mandatory for apache to authenticate the client's certificates
SSLVerifyClient none
SSLVerifyDepth 10

ProxyRequests Off
ProxyPreserveHost On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>
## Load Balancer url : https://myapp.abc.stg.asd:8443/
SSLProxyEngine on
ProxyPass / https://myapp.abc.stg.asd:8443/
ProxyPassReverse / https://myapp.abc.stg.asd:8443/

<Location />
Order allow,deny
Allow from all
</Location>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 120 minutes"
ExpiresByType image/jpeg "access plus 120 minutes"
ExpiresByType image/png "access plus 120 minutes"
ExpiresByType text/css "access plus 60 minutes"
ExpiresByType text/javascript "access plus 60 minutes"
ExpiresByType application/x-javascript "access plus 60 minutes"
ExpiresByType text/xml "access plus 60 minutes"
</IfModule>
</VirtualHost>

Por favor, corrija-me se eu estiver errado em algum lugar. Qualquer ajuda seria apreciada . Obrigado ..!!

Responder1

Depois de muito estudar na Internet, consegui resolver o problema ontem. O problema parece estar no cache DNS. Meu servidor Apache não conseguiu resolver a entrada DNS em caso de failover e estava usando a entrada DNS obsoleta e apontando para o nó que falhou. E quando eu reinicio o servidor Apache, ele conseguiu resolver a entrada DNS correta e funciona perfeitamente bem. Para me livrar da reinicialização do servidor Apache em caso de failover, usei um parâmetro"disablereuse=Ativado"Junto com o parâmetro ProxyPass conforme abaixo:ProxyPass / https://myapp.abc.stg.asd:8443/disablereuse=on Agora o apache está funcionando bem em caso de failover.

informação relacionada