.png)
Я использую Apache 2.2 перед моим сервером приложений JBOSS 5.2 в конфигурации кластера. Два узла конфигурации кластера находятся на разных хостах. Эта конфигурация размещена на серверах Linux.
В этой конфигурации я использую балансировщик нагрузки BIG IP (F5), который находится между веб-сервером и серверами приложений Jboss.
В случае отказа одного из серверов приложений балансировка нагрузки работает нормально и направляет запрос с одного узла кластера на другой узел. Но мой веб-сервер Apache не может направить запрос на рабочий узел кластера и выдает ошибку, что запрашиваемый сервер приложений недоступен. Однако, когда я перезапускаю сервер Apache, он, кажется, работает нормально, и я могу получить доступ к приложению.
Похоже, что Apache кэширует URL-адрес сервера приложений, и кэш не обновляется, когда я пытаюсь получить доступ к 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 и работает отлично. Чтобы избавиться от перезапуска сервера Apache в случае отказа, я использовал один параметр"disablereuse=Вкл"Вместе с параметром ProxyPass, как показано ниже:ProxyPass / https://myapp.abc.stg.asd:8443/ disablereuse=on Теперь Apache работает нормально в случае отказа.