11.4. 使用正则表达式进行代理映射


将环境变量用于代理映射的替代方法是为红帽构建 Keycloak 发送的传出请求配置以逗号分隔的 proxy-mapping 列表。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,为所有传出请求提供默认代理。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.