如何在Nginx/AWS-ALB配置根路径访问静态首页其余路径转发至应用服务
该需求完全可以在Nginx和AWS ALB上实现,具体配置方案如下:
Nginx 配置方案
核心利用Nginx location 规则的优先级差异实现:精确匹配根路径返回静态页,其余所有请求转发到Tomcat。
- 配置示例:
server { listen 80; server_name example.com; # 替换为实际业务域名 # 精确匹配根路径,仅响应example.com/(含带查询参数的根路径请求) location = / { root /data/static/home; # 替换为静态首页文件所在的实际目录 index index.html; } # 匹配所有非根路径的请求,转发到Tomcat location / { proxy_pass http://127.0.0.1:8080; # 替换为Tomcat实际访问地址,多实例可配置upstream proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
- 规则说明:Nginx中精确匹配规则
location = /优先级远高于普通前缀匹配location /,只有请求路径完全为/时才会返回静态页,其余所有路径无论有没有统一前缀都会走转发逻辑。
AWS ALB 配置方案
核心通过ALB监听器的路径匹配规则优先级实现:
- 先创建两个目标组:
- 静态资源目标组:将存放静态首页的S3桶/EC2静态服务实例注册到该组
- Tomcat业务目标组:将所有Tomcat服务实例注册到该组
- 为ALB对应的HTTP/HTTPS监听器添加两条规则:
- 高优先级规则(优先级设置为1):匹配模式选择路径精确匹配,匹配值填
/,动作设置为转发到静态资源目标组 - 低优先级默认规则(优先级保持默认最高值即可):匹配模式选择路径前缀匹配
*,动作设置为转发到Tomcat业务目标组
- 高优先级规则(优先级设置为1):匹配模式选择路径精确匹配,匹配值填
- 规则说明:ALB精确路径匹配会自动忽略查询参数,
example.com/?id=1这类带参数的根路径请求也会命中静态页规则,符合需求。
内容的提问来源于stack exchange,提问作者bharath chandra
相关产品推荐
相关产品推荐

