我的服务器设置遇到了奇怪的行为。我有多个 apache 和应用程序服务器相互连接,并遇到 SSL 握手问题。我的服务器设置是
Request from Internet to first apache via https
--> forward to second apache via http
--> forward to application server via https
我知道 http/https 的混合并不完美,但我稍后会解决这个问题。问题是,我的请求通过第一个 apache,到达第二个 apache 并导致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 ()
消息。
所以我假设问题位置位于我的第二个 apache 和我的应用程序服务器之间。现在到了奇怪的部分:当我直接通过 IP 地址而不是使用通过我的第一个 apache 代理的域名来寻址我的第二个 apache 时,上述错误不会出现,并且我的服务返回有效的响应。
Direct request to second apache via http
--> forward to application server via https
我的第一个猜测是我的第一个 apache 需要作为 SSLProxyEngine ( SSLProxyEngine On
) 工作 - 与我的第二个 apache 已经做的一样。当整个请求期间某处存在 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
##################################################################
有人已经遇到过这个或类似的问题吗?