我在服务器 A 上的 apache 上运行的网页/服务很少。其中一个 Web 服务需要访问在另一台物理服务器 B 上运行的应用程序。另一台服务器 B 上安装了 tomcat。在服务器上,BI 禁用了除 8080 和 8443 之外的大多数端口。为了维护 URL 方案,我让我的 Apache 服务器充当需要在服务器 B 上处理的一项服务的 tomcat 服务器的代理。另一个注意点是所有网络服务都是安全的,只能通过 https 访问。证书文件已正确安装,因为我可以使用 https 访问我的 apache 上的其他项目。
当我尝试访问要在服务器 B 上处理的那个 Web 服务时,我反复收到 503 错误 - 服务暂时不可用。
这是我在两台服务器上的设置:
在带有 Apache 的服务器 A 上:
我在 httpd.conf 文件中启用了以下指令,确保启用了代理:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
我还在 httpd conf 文件中添加了以下 2 行
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"
/>
测试结果:
期望的结果应该是,当我在浏览器中点击此 URL https://my_company_domain_name/app 时,它应该被重定向到http://tomcat_server_ip:8443/app
但是,它返回的只是服务暂时不可用