2012-04-13 64 views
1

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

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

这是我设置了两个服务器上:

在服务器A上使用Apache:

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

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

我还添加以下2行中的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> 

现在的tomcat这是在不同的服务器(B),我指定的内部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" 
    /> 

测试结果:

期望的结果应该是,当我打这个URL https://my_company_domain_name/app在我的浏览器本应重定向到http://tomcat_server_ip:8443/app

然而,它返回的是服务暂时不可用

回答