9.3. 使用正则表达式的代理映射
使用代理映射的环境变量的替代方法是为红帽构建的 Keycloak 发送的传出请求配置以逗号分隔的 proxy-mappings 列表。proxy-mapping 由基于 regex 的主机名模式和 proxy-uri 组成,使用格式 hostname-pattern;proxy-uri
。
例如,请考虑以下正则表达式:
.*\.(google|googleapis)\.com
输入以下命令应用基于 regex 的主机名模式:
bin/kc.[sh|bat] start --spi-connections-http-client-default-proxy-mappings="'*\\\.(google|googleapis)\\\.com;http://www-proxy.acme.com:8080'"
要确定传出 HTTP 请求的代理,会出现以下情况:
- 目标主机名与所有配置的主机名模式匹配。
- 使用第一个匹配模式的 proxy-uri。
- 如果没有配置模式匹配主机名,则不会使用代理。
当代理服务器需要身份验证时,以 username:password@
格式包括代理用户的凭证。例如:
.*\.(google|googleapis)\.com;http://proxyuser:password@www-proxy.acme.com:8080
proxy-mapping 的正则表达式示例:
# All requests to Google APIs use http://www-proxy.acme.com:8080 as proxy .*\.(google|googleapis)\.com;http://www-proxy.acme.com:8080 # All requests to internal systems use no proxy .*\.acme\.com;NO_PROXY # All other requests use http://fallback:8080 as proxy .*;http://fallback:8080
在本例中,会出现以下情况:
- 使用 proxy-uri 的特殊值 NO_PROXY,这意味着没有代理用于与关联的主机名模式匹配的主机。
- catch-all 模式结束 proxy-mappings,为所有传出请求提供默认代理。