我有一个AWS
部署,其中有一个 Web 服务器(为基于 PHP 的网站提供服务)和一个应用程序服务器(JSP/Tomcat
为基于 PHP 的应用程序提供服务)。从 Web 服务器到应用程序服务器的重定向是通过AJP
端口 8009 进行的。这在 中指定workers.properties
。
当只有一个应用服务器且其私有 IP 在host
指令中指定时,这种方法很有效workers.properties
。
一旦将应用程序服务器置于 之后,此重定向就会失败ELB
。从 PHP 到 Tomcat 的重定向会失败。到目前为止,我尝试过:
ELB
在文件中指定端点workers.properties
。- 将文件中的所有
JkMount
指令更改virtualhost.conf
为ProxyPass
指令。以下是更改内容
JkMount /application* tomcat1
:
ProxyPass /application ajp://ELBDNSName:8009/application
这也行不通。
如何让重定向正常工作?
答案1
你把事情搞得非常混乱:
- 这不是重定向,而是反向代理的情况。
- AJP 是一种协议。
您可能在 HTTP 模式下创建了 ELB,这意味着它会尝试与客户端和上游都使用 HTTP 通信。由于您告诉它们都使用 AJP 通信,因此失败了。使用 ProxyPass 并将 ELB 切换到 TCP应该使事情正常运作。
我强烈建议您继续学习或聘请专家。