[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

tomcat与Apache 2.4集成时使用内部ELB时,出现“太长”错误

我叫伊藤,是一名基础设施工程师。

我认为 AWS 服务器配置通常会让Web 服务器接收访问权限,然后将请求代理到其背后的应用程序服务器

在这种情况下,在考虑可用性时,最好对每台服务器进行冗余。
这就是配置。


我认为这是一种常见的配置,其中Apache 用作 Web 服务器,Tomcat 用作应用程序服务器

所以,当Apache把它扔给tomcat时,我陷入了困境,所以我想留下解决方案。

我被 ProxyPass 设置卡住了

在Apache的虚拟主机中写一段描述,将收到的请求转发给tomcat。

ProxyPass / ajp://internal-elb-xxxxxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com:8009/

我正在使用 ProxyPass 向 ajp 的 8009 端口发送请求。
写成“internal-elb-~~”的就是内部ELB。

但是,如果在这种状态下检查 Apache 语法,则会输出以下错误。

# httpd -t ProxyPass 工作主机名 (internal-elb-xxxxxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com) 太长

发送到ProxyPass的主机名太长...
即使你这么说,内部ELB主机名也会是这样的,而且IP地址不固定,那该怎么办? !
它变成了。

兼容重写规则

在这个配置中,如果ProxyPass可以将其发送到tomcat就可以了,所以
我更改了如下规则。

RewriteRule 上的 RewriteEngine ^/(.*)$ ajp://internal-elb-xxxxxxxxxxxxxx.ap-northeast-1.elb.amazonaws.com:8009/$1 [P,L]

使用重写规则。
作为重写,规则是如果涉及到所有内容,就将其扔给ajp。

现在您可以安全地将 Apache 请求发送到 Tomcat(内部 ELB)。

如果您觉得这篇文章有帮助,请点赞!
0
加载中...
0 票,平均:0.00 / 10
4,717
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者