1

我在服务器 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

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

4

1 回答 1

3

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

于 2012-04-14T05:28:54.030 回答