1

我在集群配置中的 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>

如果我在某处错了,请纠正我。任何帮助,将不胜感激 。谢谢 ..!!

4

1 回答 1

0

经过网上的大量研究,我昨天能够解决这个问题。问题似乎与 DNS 缓存有关。在故障转移的情况下,我的 apache 服务器无法解析 DNS 条目,它使用过时的 DNS 条目并指向失败的节点。当我重新启动 apache 服务器时,它能够解析正确的 DNS 条目并且工作得很好。为了避免在故障转移的情况下重新启动到 apache 服务器,我使用了一个参数“disablereuse=On” 以及 ProxyPass 参数,如下所示: ProxyPass / https://myapp.abc.stg.asd:8443/disablereuse=on 现在 apache 在故障转移的情况下工作正常。

于 2015-06-03T12:11:49.563 回答