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