6.6 主机解析
你可能需要解析当前服务器的主机名。Micronaut包括HttpHostResolver接口的实现。
默认实现按顺序在以下位置查找主机信息:
- 提供的配置
Forwarded
头X-Forwarded-
头。如果X-Forwarded-Host
头不存在,则会忽略其他X-Forwarded
头。Host
头- 请求 URI 上的属性
- 嵌入式服务器 URI 上的属性
通过以下配置可以更改要提取相关数据的头的行为:
表 1. HostResolutionConfiguration 的配置属性
属性 | 类型 | 描述 |
---|---|---|
micronaut.server.host-resolution | HttpServerConfiguration$HostResolutionConfiguration | 主机解析配置 |
micronaut.server.host-resolution.host-header | java.lang.String | 存储主机的头名字 |
micronaut.server.host-resolution.protocol-header | java.lang.String | 存储协议的头名字 |
micronaut.server.host-resolution.port-header | java.lang.String | 存储端口的头名字 |
micronaut.server.host-resolution.port-in-host | boolean | True 代表主机头支持端口 |
micronaut.server.host-resolution.allowed-hosts | java.util.List | 允许的主机正则表达式模式列表。任意已解决 |
上述配置还支持允许的主机列表。配置此列表可确保任何解析的主机与提供的正则表达式模式之一匹配。这有助于防止主机缓存投毒攻击,建议进行配置。