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

时间:2018-04-24 04:25:27

标签: apache https reverse-proxy

希望有人能指出我正确的方向。我一直试图让这个工作好几个小时:(

场景 - 我有一个DMZ,我已经设置了Apache服务器。我需要安全地与内部服务器通信,在那里我已经设置了另一个Apache服务器,该服务器再次被反向代理到服务器内的localhost应用程序..所以,基本上......

外面的世界>互联网(https://app1.com)> dmz(apache反向代理)>内部服务器(apache反向代理 - https://app1prod.com)> (http)>本地主机:8080

现在,在dmz中,我可以直接访问https://app1prod.com而不会出现问题。但是,我不能为我的生活让https://app1.com从dmz工作。我收到'503 service unavailable'消息:(这是我在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

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

1 个答案:

答案 0 :(得分:2)

尝试删除ProxyPreserveHost on

启用该指令后,代理请求将发送到ProxyPass指令中定义的服务器,但HTTP Host:标头将从初始请求中保留。在您的情况下,Apache向app1prod.com发送的请求将具有Host: app1.com标头,而app1prod.com我未配置(可能是故意)来响应此类请求。