从基于 PHP 的 Web 服务器重定向到 ELB 和 tomcat 应用程序

从基于 PHP 的 Web 服务器重定向到 ELB 和 tomcat 应用程序

我有一个AWS部署,其中有一个 Web 服务器(为基于 PHP 的网站提供服务)和一个应用程序服务器(JSP/Tomcat为基于 PHP 的应用程序提供服务)。从 Web 服务器到应用程序服务器的重定向是通过AJP端口 8009 进行的。这在 中指定workers.properties

当只有一个应用服务器且其私有 IP 在host指令中指定时,这种方法很有效workers.properties

一旦将应用程序服务器置于 之后,此重定向就会失败ELB。从 PHP 到 Tomcat 的重定向会失败。到目前为止,我尝试过:

  1. ELB在文件中指定端点workers.properties
  2. 将文件中的所有JkMount指令更改virtualhost.confProxyPass指令。以下是更改内容
    JkMount /application* tomcat1

    ProxyPass /application ajp://ELBDNSName:8009/application

这也行不通。

如何让重定向正常工作?

答案1

你把事情搞得非常混乱:

  • 这不是重定向,而是反向代理的情况。
  • AJP 是一种协议。

您可能在 HTTP 模式下创建了 ELB,这意味着它会尝试与客户端和上游都使用 HTTP 通信。由于您告诉它们都使用 AJP 通信,因此失败了。使用 ProxyPass 并将 ELB 切换到 TCP应该使事情正常运作。

我强烈建议您继续学习或聘请专家。

相关内容