在 AWS ALB 的目标组中,根路径(比如 /)的代理规则需配置为{HTTP/1.1}host:port,并通过HTTP重定向将请求发送到Apache服务器,如下所示:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on RewriteCond %{REQUEST_URI} !^/myapp [NC] RewriteRule ^/(.*) http://{HTTP_HOST}:8080/$1 [P]
使用以上规则时,用户访问的 URL 看起来是这样的:http://my-load-balancer-1234567890.us-west-2.elb.amazonaws.com/path/to/application。
其中,my-load-balancer-1234567890.us-west-2.elb.amazonaws.com 是 AWS ALB 的 DNS 名称,/path/to/application 是 Apache 服务器的根路径。
注意:AWS ALB 可以与多种其他反向代理软件(如 Nginx、Apache)结合使用,但因应用程序和代理环境变化而变化。上述启发式解决方案适用于大多数情况,但可能不适用于所有情况。