Apache反向代理https配置导致503错误。

4
希望有人能指点我方向。我已经连续几个小时尝试使它工作了 :(
场景 - 我在 DMZ 中设置了 Apache 服务器。我需要与设置了另一个 Apache 服务器的内部服务器进行安全通信,该服务器再次反向代理到服务器中的本地应用程序。因此,基本上是这样的..
外部世界 > 互联网 (https://app1.com) > dmz (apache 反向代理) > 内部服务器 (apache 反向代理 - https://app1prod.com) > (http) > localhost:8080
现在,在 dmz 中,我可以直接访问https://app1prod.com没有问题。但是,我无论如何都无法让https://app1.com从 dmz 中工作。我得到了“503服务不可用”的消息:(这是我的 dmz 中的 Apache 配置..
<VirtualHost *:443>
ServerName              app1.com
ProxyRequests           off
SSLProxyCheckPeerName   off
SSLProxyVerify          none
SSLProxyCheckPeerCN     off
SSLProxyCheckPeerExpire off
LogLevel                debug   
SSLEngine               on
SSLProxyEngine          on  
SSLCertificateFile      "xxx/cert.crt"
SSLCertificateKeyFile   "xxx/key.key"
SSLCertificateChainFile "xxx/certchain.crt"     
ProxyPass               /   https://app1prod.com/
ProxyPassReverse        /   https://app1prod.com/  
<Proxy *>
    order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost       on
ProxyTimeout            1200
</VirtualHost>

在我的httpd.conf中,除了默认模块之外,我加载了以下模块。
mod_proxy.so
mod_proxy_connect.so
mod_proxy_http.so
mod_ssl
mod_rewrite.so
mod_socache_shmcb.so
mod_ssl.so

我做错了什么?请帮帮我!非常感谢..


你需要查看 error.log 文件。 - Dusan Bajic
从 app1.com 的 Apache 服务器的 shell,你能用 curl -v https://app1prod.com/ 连接吗? - Dusan Bajic
不好意思,我真的很新手。我在Windows服务器上,不知道如何使用这个curl命令...有什么建议吗?非常感谢您尝试帮助我! - djayrox
实际上,在命令中添加 -v 会连接到 app1prod.com 的 443 端口!! - djayrox
什么是确切的Apache版本? - Dusan Bajic
显示剩余8条评论
1个回答

5
尝试移除ProxyPreserveHost on指令。启用该指令后,被代理的请求将被发送到ProxyPass指令中定义的服务器,但HTTP Host:头部将从初始请求中保留下来。在您的情况下,由Apache发送到app1prod.com的请求将具有Host: app1.com头部,并且app1prod.com未配置(可能是故意的)来响应这样的请求。

1
非常感谢您提供的解决方案和说明,再次感谢!您太牛了。我已经投了赞成票,但由于我的积分少于15分,所以没有显示出来(你能看出我不是一个开发者吗?哈哈)。谢谢! - djayrox
欢迎来到SO djayrox! - Dusan Bajic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接