La conmutación por error de la aplicación no funciona en el servidor web Apache 2.2 configurado con el equilibrador de carga BIG IP (f5)

La conmutación por error de la aplicación no funciona en el servidor web Apache 2.2 configurado con el equilibrador de carga BIG IP (f5)

Estoy usando Apache 2.2 frente a mi servidor de aplicaciones JBOSS 5.2 en una configuración de clúster. Los dos nodos de la configuración del clúster residen en hosts diferentes. Esta configuración está alojada en servidores Linux.

En esta configuración estoy usando un balanceador de carga BIG IP (F5), que se encuentra entre el servidor web y los servidores de aplicaciones Jboss.

En caso de conmutación por error de uno de los servidores de aplicaciones, el equilibrio de carga funciona bien y enruta la solicitud de un nodo del clúster al otro nodo. Pero mi servidor web Apache no puede enrutar la solicitud al nodo de trabajo del clúster y muestra el error de que el servidor de aplicaciones solicitado no es accesible. Sin embargo, cuando reinicio el servidor Apache, parece funcionar bien y puedo acceder a la aplicación.

Parece que Apache está almacenando en caché la URL del servidor de aplicaciones y la caché no se actualiza cuando intento acceder a la URL del servidor web después de que se produce la conmutación por error.

A continuación se muestra la configuración httpd.conf que estoy 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 corríjame si me equivoco en alguna parte. Cualquier ayuda sería apreciada . Gracias ..!!

Respuesta1

Después de mucho estudiar en Internet, ayer pude resolver el problema. El problema parece estar relacionado con el almacenamiento en caché de DNS. Mi servidor Apache no pudo resolver la entrada DNS en caso de conmutación por error y estaba usando la entrada DNS obsoleta y apuntando al nodo que falló. Y cuando reinicio el servidor Apache, pude resolver la entrada DNS correcta y funciona perfectamente bien. Para deshacerme del reinicio del servidor Apache en caso de conmutación por error, he usado un parámetro."disablereuse=Activado"Junto con el parámetro ProxyPass como se muestra a continuación:ProxyPass / https:// myapp.abc.stg.asd:8443/disablereuse=on Ahora Apache funciona bien en caso de conmutación por error.

información relacionada