我在服务器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
然而,它返回的是服务暂时不可用