我在叢集配置中的 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 在發生故障轉移時運作正常。