서버 설정에 이상한 동작이 발생했습니다. 여러 개의 Apache 및 응용 프로그램 서버가 서로 연결되어 있고 SSL 핸드셰이크 문제가 있습니다. 내 서버 설정은
Request from Internet to first apache via https
--> forward to second apache via http
--> forward to application server via https
http/https 혼합이 완벽하지 않다는 것을 알고 있지만 이에 대해서는 나중에 다루겠습니다. 문제는 내 요청이 첫 번째 아파치를 거쳐 두 번째 아파치에 도달하여 AH00898: Error during SSL Handshake with remote server returned by /api/servicename/v1
오류 AH01097: pass request body failed to 10.173.121.84:9443 (10.173.121.84) from 10.173.144.43 ()
메시지가 발생한다는 것입니다.
그래서 문제 위치가 두 번째 아파치와 애플리케이션 서버 사이에 있다고 가정합니다. 이제 이상한 부분이 나타납니다. 첫 번째 아파치를 통해 프록시된 도메인 이름을 사용하는 대신 IP 주소로 직접 두 번째 아파치의 주소를 지정하면 위의 오류가 나타나지 않고 내 서비스가 유효한 응답을 반환합니다.
Direct request to second apache via http
--> forward to application server via https
내 첫 번째 추측은 내 첫 번째 아파치가 SSLProxyEngine()으로 작동해야 한다는 것입니다. SSLProxyEngine On
두 번째 아파치가 이미 수행하는 것과 동일합니다. 전체 요청 중 어딘가에 https 통신이 있을 때 이것이 필요할 수도 있습니다. 그러나 그것은 아무것도 바꾸지 않습니다.
구성은 매우 간단합니다.
최초의 아파치
# ServerName, ServerAdmin, Logging, etc
##################################################################
ProxyRequests off
ProxyPreserveHost On
SSLProxyEngine On
ProxyPass /oauth balancer://test-esb-gateway-cluster/oauth
ProxyPassReverse /oauth balancer://test-esb-gateway-cluster/oauth
ProxyPass /api balancer://test-esb-gateway-cluster/api
ProxyPassReverse /api balancer://test-esb-gateway-cluster/api
##################################################################
두 번째 아파치
# ServerName, ServerAdmin, Logging, etc
##################################################################
ProxyRequests off
ProxyPreserveHost On
SSLProxyEngine On
ProxyPass /api balancer://esb-api-cluster/api
ProxyPassReverse /api balancer://esb-api-cluster/api
ProxyPass /oauth balancer://oauth-provider-cluster/oauth
ProxyPassReverse /oauth balancer://oauth-provider-cluster/oauth
##################################################################
이미 이 문제나 비슷한 문제를 겪은 사람이 있나요?