Anwendungs-Failover funktioniert nicht auf einem Apache 2.2-Webserver, der mit dem BIG IP (f5)-Load Balancer konfiguriert ist

Anwendungs-Failover funktioniert nicht auf einem Apache 2.2-Webserver, der mit dem BIG IP (f5)-Load Balancer konfiguriert ist

Ich verwende Apache 2.2 vor meinem JBOSS 5.2-Anwendungsserver in einer Clusterkonfiguration. Die beiden Knoten der Clusterkonfiguration befinden sich auf unterschiedlichen Hosts. Diese Konfiguration wird auf Linux-Servern gehostet.

In dieser Konfiguration verwende ich einen BIG IP (F5) Load Balancer, der zwischen dem Webserver und den Jboss-Anwendungsservern sitzt.

Im Falle eines Failovers eines der Anwendungsserver funktioniert die Lastverteilung einwandfrei und leitet die Anforderung von einem Knoten des Clusters an den anderen Knoten weiter. Aber mein Apache-Webserver kann die Anforderung nicht an den funktionierenden Knoten des Clusters weiterleiten und gibt den Fehler aus, dass der angeforderte Anwendungsserver nicht erreichbar ist. Wenn ich den Apache-Server jedoch neu starte, scheint er einwandfrei zu funktionieren und ich kann auf die Anwendung zugreifen.

Es scheint, dass Apache die URL des Anwendungsservers zwischenspeichert und der Cache nicht aktualisiert wird, wenn ich nach dem Failover versuche, auf die URL des Webservers zuzugreifen.

Unten ist die httpd.conf-Konfiguration, die ich verwende:

<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>

Bitte korrigieren Sie mich, wenn ich irgendwo falsch liege. Ich bin für jede Hilfe dankbar. Danke ..!!

Antwort1

Nach ausführlicher Recherche im Internet konnte ich das Problem gestern lösen. Das Problem scheint beim DNS-Caching zu liegen. Mein Apache-Server konnte den DNS-Eintrag im Falle eines Failovers nicht auflösen und verwendete den veralteten DNS-Eintrag und verwies auf den ausgefallenen Knoten. Und als ich den Apache-Server neu startete, konnte er den korrekten DNS-Eintrag auflösen und funktionierte einwandfrei. Um den Neustart des Apache-Servers im Falle eines Failovers zu vermeiden, habe ich einen Parameter verwendet„disablereuse=Ein“Zusammen mit dem ProxyPass-Parameter wie unten:ProxyPass / https:// myapp.abc.stg.asd:8443/ disablereuse=on Jetzt funktioniert Apache im Failover einwandfrei.

verwandte Informationen