使用Apache作为安全代理访问Tomcat时遇到问题

时间:2012-04-13 17:49:48

标签: tomcat proxy apache mod-proxy

我在服务器A上的apache上运行的网页/服务很少。其中一个Web服务需要访问在另一个物理服务器B上运行的应用程序。另一个服务器B上安装了tomcat。在服务器上,BI已禁用除8080和8443之外的大多数端口。为了维护URL方案,我使Apache服务器充当tomcat服务器的代理,用于需要在服务器B上处理的那个服务。另一点需要注意的是所有Web服务都是安全的,只能通过https访问。证书文件已正确安装,因为我可以使用https访问我的apache上的其他项目。

当我尝试访问要在服务器B上处理的那个Web服务时,我反复收到503错误 - 服务暂时不可用。

以下是我在两台服务器上的设置:

在服务器A上使用Apache:

我在httpd.conf文件中启用了以下指令,确保代理已启用:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

我还在httpd conf文件中添加了以下两行

ProxyRequests Off
ProxyPreserveHost on

接下来,我在ssl.conf中有以下几行

Listen 443
<VirtualHost _default_:443>
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/pki/tls/certs/your_company_certificate.pem
SSLCertificateKeyFile /etc/pki/tls/certs/your_company_private_key.pem
ServerName my_company_domain_name
ProxyPass /app http://tomcat_server_ip:8443/app
ProxyPassReverse /app http://tomcat_server_ip:8443/app
</VirtualHost>

现在在不同服务器(B)中的tomcat中,我在server.xml中指定了以下内容:

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="true" redirectPort="443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"/> 

 <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="true" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"        
        scheme="https"
        secure="false" 
        SSLEnabled="true" 
        proxyPort="443"
        proxyName="my_company_domain_name"
     />

测试结果:

理想的结果应该是,当我在浏览器中点击此网址https://my_company_domain_name/app时,应将其重定向到http://tomcat_server_ip:8443/app

但是,它返回的只是服务暂时不可用

1 个答案:

答案 0 :(得分:3)

端口8443已超过https;你为什么通过http引用它?您还需要先确认https://tomcat_server_ip:8443/app是否正常工作。