應用程式故障轉移在配置了 BIG IP (f5) 負載平衡器的 apache 2.2 Web 伺服器中不起作用

應用程式故障轉移在配置了 BIG IP (f5) 負載平衡器的 apache 2.2 Web 伺服器中不起作用

我在叢集配置中的 JBOSS 5.2 應用程式伺服器前面使用 Apache 2.2。叢集配置的兩個節點駐留在不同的主機上。此配置託管在 Linux 伺服器上。

在此配置中,我使用 BIG IP (F5) 負載平衡器,它位於 Web 伺服器和 Jboss 應用程式伺服器之間。

如果其中一台應用程式伺服器發生故障轉移,負載平衡運作正常,並將請求從叢集的一個節點路由到另一個節點。但是我的 apache Web 伺服器無法將請求路由到叢集的工作節點,並給出錯誤:所請求的應用程式伺服器不可存取。然而,當我重新啟動 apache 伺服器時,它似乎工作正常,並且我能夠訪問該應用程式。

看來 apache 正在快取應用程式伺服器 url,當我在故障轉移發生後嘗試存取 Web 伺服器 URL 時,快取沒有刷新。

以下是我正在使用的 httpd.conf 配置:

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

如果我有錯的地方請糾正我。任何幫助,將不勝感激 。謝謝 ..!

答案1

經過網路上的大量研究,我昨天解決了這個問題。問題似乎與 DNS 快取有關。我的 apache 伺服器無法在故障轉移時解析 DNS 項目,並且它使用過時的 DNS 條目並指向發生故障的節點。當我重新啟動 apache 伺服器時,它能夠解析正確的 DNS 項目並且運作得很好。“禁用重用=開”連同 ProxyPass 參數如下:ProxyPass / https://myapp.abc.stg.asd:8443/disablereuse=on 現在 apache 在發生故障轉移時運作正常。

相關內容