BIG IP(f5) 로드 밸런서로 구성된 Apache 2.2 웹 서버에서 애플리케이션 장애 조치가 작동하지 않음

BIG IP(f5) 로드 밸런서로 구성된 Apache 2.2 웹 서버에서 애플리케이션 장애 조치가 작동하지 않음

클러스터 구성에서 JBOSS 5.2 응용 프로그램 서버 앞에 Apache 2.2를 사용하고 있습니다. 클러스터 구성의 두 노드는 서로 다른 호스트에 있습니다. 이 구성은 Linux 서버에서 호스팅됩니다.

이 구성에서는 웹 서버와 Jboss 애플리케이션 서버 사이에 있는 BIG IP(F5) 로드 밸런서를 사용하고 있습니다.

응용 프로그램 서버 중 하나가 장애 조치되는 경우 로드 균형이 제대로 작동하고 클러스터의 한 노드에서 다른 노드로 요청을 라우팅합니다. 하지만 내 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 항목을 사용하고 실패한 노드를 가리키고 있었습니다. 그리고 아파치 서버를 다시 시작하면 올바른 DNS 항목을 확인할 수 있었고 완벽하게 작동했습니다. 장애 조치 시 아파치 서버를 다시 시작하지 않기 위해 하나의 매개변수를 사용했습니다."비활성화재사용=켜기"아래와 같이 ProxyPass 매개변수와 함께:ProxyPass / https://myapp.abc.stg.asd:8443/disablereuse=on 이제 장애 조치 시 Apache가 제대로 작동합니다.

관련 정보