为 Tableau Server 配置代理和负载平衡器

在大多数企业中,Tableau Server 需要与 Internet 通信。Tableau Server 旨在受保护的内部网络内部运行。不要直接在 Internet 或 DMZ 中设置 Tableau Server。相反,您的网络和 Internet 之间的通信应使用代理服务器传递。反向代理服务器将流量从网络内部传递到 Internet 上的目标。反向代理服务器和负载平衡器将流量从 Internet 传递到网络内部的目标。

谁应阅读本文?

本文面向拥有常规联网、负载平衡和网关代理解决方案经验的 IT 专业人员。本文描述 Tableau 为何以及在何时需要 Internet 访问权限,并描述如何配置网络和 Tableau 以使用代理服务器和负载平衡器来访问 Internet 以及通过 Internet 进行访问。有许多第三方解决方案,因此本文的某些内容一定是通用的。

在配置代理服务器之前,请参见与 Internet 通信

配置转发代理服务器

若要实现从 Tableau Server 到 Internet 的通信,请将 Tableau Server 部署在转发代理服务器后面。当 Tableau Server 需要访问 Internet 时,它不会将请求直接发送到 Internet,而是会将请求发送到转发代理,后者将会转发请求。转发代理可以帮助管理员针对负载平衡、阻止访问站点等任务管理外流到 Internet 的流量。

如果使用转发代理,您必须将网络内部运行 Tableau Server 的计算机配置为将流量发送到转发代理。Tableau Server 不支持直通式或手动代理身份验证。

如果您使用转发代理解决方案运行 OpenID 身份验证,则需要额外的配置。请参见配置 OpenID 以使用转发代理

配置 Windows 版 Tableau Server 以使用转发代理

用于在 Tableau Server 计算机上配置 Internet 选项的步骤取决于以下哪个方案描述了您的企业的情况:

  • 组织不使用转发代理解决方案。如果组织未运行代理解决方案,并且您在其中安装 Tableau Server 的计算机可与 Internet 通信,则无需执行此处的过程。

  • 已部署代理解决方案,并且自动配置文件定义连接设置。如果组织使用自动配置文件(例如 PAC 或 .ins 文件)来指定 Internet 连接信息,则您可以在 Windows 的“局域网 (LAN) 设置”对话框中使用此信息。有关详细信息,请参见 Microsoft 支持站点上的实现浏览器设置的自动检测和配置

  • 已部署代理解决方案,但未部署自动配置文件。对于此方案,您必须在运行 Tableau Server 的 Windows 计算机上配置局域网设置,以便与代理服务器的连接在用户运行身份帐户的安全上下文下运行。您还必须将 localhost 和其他内部 Tableau Server 实例配置为例外。

以下过程描述了最后一种情况的步骤 - 没有自动配置文件的代理解决方案,并且 Tableau Server 在 Windows Server 上运行。

注意:如果使用 Tableau Server 的分布式安装,请在初始服务器节点和每个附加节点上执行以下过程。

步骤 1:将运行身份服务帐户添加到“本地管理员”组

若要执行此过程,您必须以运行身份服务帐户身份登录到 Tableau Server 计算机。默认情况下,“本地登录”策略未应用于运行身份服务帐户。因此,您必须暂时将运行身份服务帐户添加到“本地管理员”组。

如果尚未在计算机上安装 Tableau Server,请参见更改运行身份服务帐户。如果已安装 Tableau Server 并配置了运行身份服务帐户,则可以通过登录到 TSM Web UI 来确定运行身份服务帐户名称。Tableau Server 运行身份服务帐户在“配置”窗口的“安全”选项卡上列出。请参见登录到 Tableau 服务管理器 Web UI

使用 Microsoft 网站上的为本地组添加成员中的步骤将运行身份服务帐户添加到“本地管理员”组。配置完转发代理信息后,您将从“本地管理员”组中移除运行身份服务帐户。

步骤 2:在 Windows 局域网设置中配置代理服务器

  1. 使用运行身份服务帐户登录到已安装或将安装 Tableau Server 的计算机。

  2. 打开“局域网 (LAN) 设置”对话框。(通过在 Windows 的“开始”菜单中搜索 Internet Options 可快速到达此对话框。在“Internet 属性”对话框中,单击“连接”选项卡,然后单击“局域网设置”。)

  3. “代理服务器”下,选择“为 LAN 使用代理服务器”,输入代理服务器地址和端口,然后选择“对于本地地址不使用代理服务器”

保持此对话框打开并继续执行下一步。

步骤 3:添加例外以绕过代理服务器

您向此代理配置中添加例外来保证本地 Tableau Server 群集(如果目前有该群集或稍后将有该群集)内的所有通信不会路由到代理服务器。

  1. 在“局域网设置”对话框中,单击“高级”。(只有在您选择了为局域网使用代理服务器的选项后,此按钮才可用。)

  2. “代理设置”对话框的“例外”字段中,输入以下内容:

    • localhost
    • 相同群集中其他 Tableau Server 计算机的服务器主机名和 IP 地址。

    使用分号分隔各项。

  3. 关闭代理设置对话框和“局域网 (LAN) 设置”对话框。

  4. “Internet 属性”对话框中,单击“确定”以应用设置。

保持登录到计算机,并继续执行下一步。

步骤 4:验证代理设置是否未与 Windows 环境变量冲突

某些组织将转发代理设置配置为 Windows 操作系统中的环境变量。如果在运行 Tableau Server 的计算机上配置了此类设置,则您必须验证这些设置与您在此处完成的配置不冲突。

如果您的 Tableau Server 启用了 ATR 许可,则此验证很重要。ATR 许可在 Tableau Server 版本 2021.4 及更高版本上默认启用。

  1. 在运行 Tableau Server 的计算机上,在搜索框中输入“高级系统设置”,然后按 Enter 打开“系统属性”框。

  2. 在“高级”选项卡上,单击“环境变量”。

  3. 滚动浏览“系统变量”字段。

    如果指定了 http_proxyhttps_proxy,请验证值与您在上一步骤中配置的代理服务器地址不冲突。

    • 如果现有设置不冲突,则转到“步骤 5:测试代理配置”。

    • 如果现有设置存在冲突,则创建一个名为 no_proxy 的新变量,并输入:

      • 主机名、
      • IP 地址

      例如,localhost,192.168.0.10。有关详细信息,请参见 Microsoft MSDN 文章设置环境变量

  4. 单击“确定”

步骤 5:验证 WinHTTP 代理设置是否与 Windows LAN 设置不冲突

如果启用了服务器 ATR(在 Tableau Server 2021.4 或更高版本中默认启用),请验证 WinHTTP 代理是否已配置并且没有与 Windows LAN 设置冲突。

  1. 使用运行身份服务帐户登录到已安装或将安装 Tableau Server 的计算机。

  2. 打开命令提示符,并使用以下命令确认当前配置:

    netsh winhttp show proxy

  3. 使用以下任一方法为 WinHTTP 配置代理:

    • 如果从 Windows LAN 设置中导入配置,请使用以下命令:

      netsh winhttp import proxy source=ie

    • 使用以下命令单独配置 WinHTTP 代理:

      netsh winhttp set proxy <proxy server> <proxy bypass list>

    有关详细信息,请参见 Microsoft 网站上的使用 netsh 命令手动配置代理服务器(链接在新窗口中打开)

  4. 确认代理设置没有与其他 Windows 代理配置冲突。

步骤 6:测试代理配置

若要测试新配置,请在仍然以运行身份服务帐户在 Tableau Server 计算机上登录的情况下,打开 Web 浏览器并测试以下 Tableau URL:

https://mapsconfig.tableau.com/v1/config.json(链接在新窗口中打开)https://api.mapbox.com/(链接在新窗口中打开) 将提示您下载 json 文件。

步骤 7:从“本地管理员”组中移除运行身份服务帐户

测试了代理设置后,从“本地管理员”组中移除运行身份服务帐户。将运行身份服务帐户保留在管理员组中会不必要地提升运行身份服务帐户的权限,造成安全风险。

重启 Tableau Server 以确保实施所有更改。

服务器崩溃报告程序

如果您的组织使用代理服务器连接到 Internet,则必须配置 Tableau Server 的崩溃报告程序才能使用代理。即使您已将 Tableau Server 配置为使用代理,也必须单独配置服务器崩溃报告程序。若要为服务器崩溃报告程序配置代理,请参见配置服务器崩溃报告程序

反向代理和负载平衡器如何与 Tableau Server 配合工作

反向代理和负载平衡器是指从外部 (Internet) 客户端接收请求并将请求转发到 Tableau Server 的服务器。通过这些解决方案,将可通过 Internet 访问 Tableau Server,而不必向 Internet 暴露该特定 Tableau Server 的单独 IP 地址。它们还充当身份验证和直通设备,因此在公司外部人员可以访问的位置不会存储数据。这一要求对于需要遵循诸如 PCI、HIPAA 或 SOX 之类的各种隐私法规的组织可能很重要。

下图说明了当客户端向配置为使用反向代理和/或负载平衡器 (LB) 的 Tableau Server 发出请求时的通信路径。

  1. 外部客户端发起 Tableau Server 连接。此客户端使用为反向代理服务器/LB 配置的公共 URL,例如 https://tableau.example.com。(客户端不知道它在访问反向代理/LB。)

  2. 反向代理反过来会将该请求映射至 Tableau Server 请求。在某些情况下,可以将反向代理配置为(使用 SSL/TLS)对客户端进行身份验证,以作为将请求传递给 Tableau Server 的前提条件。

  3. Tableau Server 获取请求并将其响应发送到反向代理/LB。

  4. 反向代理/LB 将内容发回给客户端。就客户端而言,它刚与 Tableau Server 进行了交互,并且无法得知通信是通过中间服务器进行的。

TLS/SSL

根据您的网关方案,您应该考虑将反向代理和负载平衡服务器配置为对网络外部的任何流量使用 TLS/SSL。这有助于保护隐私、内容完整性和身份验证。除非您已经采取了其他安全措施来保护您的 Internet 网关与 Tableau Server 之间的流量,否则,也建议配置网关代理与 Tableau Server 之间的 SSL。您可以使用内部证书或自签名证书来对 Tableau 服务器和其他内部计算机之间的流量进行加密。

移动访问

Tableau Server 会向 Tableau Mobile 会话的所有 HTTP 响应中添加 X 标头。默认情况下,大多数代理解决方案将保留 X 标头。如果您的网关解决方案未保留 X 标头,则您需要配置代理服务器和负载平衡器以便为移动客户端会话的所有 HTTP 响应保留以下标头:X-Tableau: Tableau Server

如果在网关处配置了身份验证,则代理服务器/LB 必须使用 HTTP 302 响应来响应 Tableau Mobile HTTP 请求。302 必须重定向到身份提供程序登录页面。要查看一个描述 302 身份验证序列的图表,请参见 Tableau 社区中的 Tableau Mobile 身份验证序列(链接在新窗口中打开)

反向代理、负载平衡器和用户身份验证

Tableau Server 会始终验证用户的身份。这意味着,即使您在组织网关处对入站连接进行身份验证,Tableau Server 仍将验证用户的身份。

但是,并非所有客户端都支持使用网关解决方案进行用户身份验证:

  • 对于支持的 Web 浏览器,您可以将 SAML、OpenID Connect、 Kerberos、Trusted Tickets 或手动身份验证与反向代理/LB 一起使用。

  • Tableau Mobile 支持将 SAML 或手动身份验证与反向代理/LB 一起使用。iOS 版本的 Tableau Mobile 还支持将 Kerberos 与反向代理/LB 一起使用。上面的推荐方法同样适用。

  • Tableau Prep 不支持使用反向代理或负载平衡器的身份验证。对于远程访问,请使用 VPN 解决方案,或将网关服务配置为将来自 Tableau Prep 的流量直接路由到 Tableau Server 进行身份验证。

  • Tableau Desktop 支持使用反向代理进行身份验证,前提是身份验证模块在将流量路由到 Tableau Server 进行最终身份验证之前对反向代理执行预身份验证。有关详细信息,请参见 Tableau Server 企业部署指南第 5 部分 - 配置 Web 层(链接在新窗口中打开)配置具有独立网关的身份验证模块

如果您的组织使用 Active Directory 进行身份验证:

  • 不支持将启用自动登录 (SSPI) 的 Active Directory 与反向代理一起使用。
  • 在将 Tableau Server 配置为使用 Kerberos 之前,必须针对反向代理配置 Tableau Server。有关详细信息,请参见配置 Kerberos

将 Tableau Server 配置为使用反向代理服务器和/或负载平衡器

在配置 Tableau Server 之前,您需要收集有关代理服务器配置的以下信息。若要配置 Tableau Server,请使用 tsm configuration set 命令。您需要收集的信息与运行 tsm 时所需的选项对应。

大多数以下 tsm 选项也用于配置在负载平衡器后面运行的 Tableau Server 部署。有关详细信息,请参见添加负载平衡器

描述对应的 tsm configuration set 选项
IP 地址CNAME

对于此选项,您可以输入 IP 地址或 CNAME。

代理和负载平衡器服务器的一个或多个公共 IP 地址。IP 地址必须采用 IPv4 格式(例如 203.0.113.0),并且必须是静态 IP。

如果无法提供静态 IP 地址,或者如果您正在使用云代理或外部负载平衡器,则您可以指定客户端连接到 Tableau Server 时将使用的 CNAME(规范名称)DNS 值。必须在反向代理解决方案中配置此 CNAME 值以与 Tableau Server 通信。

gateway.trusted
FQDN人员访问 Tableau Server 所使用的完全限定的域名,如 tableau.example.com。Tableau Server 不支持为此选项使用上下文开关。例如,不支持以下 URL:example.com/tableau.gateway.public.host
非 FQDN代理或 LB 服务器的任何子域名。在 tableau.example.com 这个示例中,子域名为 tableaugateway.trusted_hosts
别名代理或 LB 服务器的任何公共备用名称。大多数情况下,会使用 CNAME 值指定别名。例如,代理服务器 bigbox.example.com 以及 CNAME 条目 ftp.example.comwww.example.comgateway.trusted_hosts
端口从客户端到反向代理服务器的流量的端口号。

gateway.public.port

如果使用 Tableau Server 的分布式安装,则在群集中的初始节点上运行以下 tsm 命令。

  1. 输入以下命令以设置客户端通过代理和/或 LB 服务器访问 Tableau Server 时将使用的 FQDN,其中 name 是 FQDN:

    tsm configuration set -k gateway.public.host -v "name"

    举例来说,如果通过在浏览器中输入 https://tableau.example.com 来访问 Tableau Server,请输入此命令:

    tsm configuration set -k gateway.public.host -v "tableau.example.com"

  2. 输入以下命令以设置代理和/或 LB 服务器的地址或 CNAME,其中 server_address 为 IPv4 地址或 CNAME 值:

    tsm configuration set -k gateway.trusted -v "server_ip_address"

    如果组织使用多个代理服务器和/或 LB 服务器,请输入多个 IPv4 地址,用逗号分隔这些地址。不支持 IP 范围。为了改善 Tableau Server 的启动和初始化,请最大程度地减少 gateway.trusted 的条目数。

  3. 输入以下命令以为代理/LB 服务器指定备用名称,例如它的完全限定域名、任何非完全限定域名和任何别名。如果有多个名称,请用逗号将名称隔开。

    tsm configuration set -k gateway.trusted_hosts -v "name1, name2, name3"

    例如:

    tsm configuration set -k gateway.trusted_hosts -v "proxy1.example.com, proxy1, ftp.example.com, www.example.com"

  4. 如果代理服务器使用 SSL 与 Internet 通信,请运行以下命令,告知 Tableau 反向代理服务器正在使用端口 443,而不是端口 80:

    tsm configuration set -k gateway.public.port -v 443

    注意:如果代理服务器使用 SSL 与 Tableau Server 进行通信,则必须在 Tableau Server 上配置和启用 SSL。

  5. 输入以下命令以提交配置更改:

    tsm pending-changes apply

    如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见tsm pending-changes apply

将反向代理或负载平衡服务器配置为使用 Tableau Server

当客户端通过反向代理或负载平衡器访问 Tableau Server 时,必须要保留(或添加)特定消息标头。具体而言,必须在 gateway.trustedgateway.trusted_hosts 设置中表示消息链中的所有服务器。

下图显示了一个单跳消息链的示例标头,在该消息链中,代理服务器直接与 Tableau Server 通信:

下图显示了一个多跳消息链的示例标头,在该消息链中,消息在连接到 Tableau Server 之前将穿过两个代理服务器:

下表介绍了这些标头,以及这些标头如何与 Tableau Server 上的配置设置相关:

标题描述相关的 Tableau Server 设置
REMOTE_ADDRX-FORWARDED-FOR (XFF)Tableau Server 需要这些标头来确定请求来源的 IP 地址。X-FORWARDED-FOR 标头必须按连接进行的顺序将 IP 地址链提供给 Tableau Server。您在 gateway.trusted 中设置的 IP 地址必须与 REMOTE_ADDR 中呈现的 IP 地址匹配。如果在 gateway.trusted 中发送了多个地址,则其中一个地址必须与 REMOTE_ADDR 中呈现的 IP 地址匹配。
HOSTX-FORWARDED HOST (XFH)这些标头用于在 Tableau Server 回复客户端时生成指向 Tableau Server 的绝对链接。X-FORWARDED-HOST 标头必须按连接进行的顺序将主机名提供给 Tableau Server。X-FORWARDED-HOST 标头中呈现的主机名必须包括在 gateway.trusted_hosts 中指定的主机名中。
X-FORWARDED-PROTO (XFP)如果为从客户端到代理的流量启用了 SSL,但没有为从代理到 Tableau Server 的流量启用,则必须提供标题。

对于未沿着消息路由的每个跃点来维护 HTTP 或 HTTPS 的情况, X-FORWARDED-PROTO 标头很重要。例如,如果反向代理需要使用 SSL 来处理外部请求,但是未将反向代理与 Tableau Server 之间的通信配置为使用 SSL,则需要提供 X-FORWARDED-PROTO 标头。有些代理解决方案会自动添加 X-FORWARDED-PROTO 标头,而有些则不会。最后,根据您的代理解决方案,您可能必须配置端口转发以将请求从端口 443 转到端口 80。

相关知识库文章:升级后 SAML 出现“无法登录”以及“用户名或密码无效”错误(链接在新窗口中打开)

必须在相应的参数中指定反向代理上的端口配置(来自客户端的入站连接以及到 Tableau Server 的出站连接):gateway.public.port,这是用于连接到代理的端口客户端。

如果代理服务器使用 SSL 与 Tableau Server 进行通信,则必须在 Tableau Server 上配置和启用 SSL。

验证反向代理和负载均衡器配置

若要验证网关到Tableau Server的配置,请使用 Tableau Server Web 制作或 Tableau Desktop 发布工作簿和数据源。如果使用 Web 浏览器通过 Internet 连接到 Tableau Server,请验证您是否在使用推荐的浏览器(链接在新窗口中打开)。发布和查看使用现有数据源的工作簿以及已发布的数据源。使用下面的链接来熟悉以最终用户身份连接 Tableau Server 的操作。

任务文档
Web 制作概述。在 Web 上使用 Tableau(链接在新窗口中打开)
从 Tableau Desktop 或 Web 浏览器登录到 Tableau Server。登录 Tableau Server 或 Tableau Online(链接在新窗口中打开)
将工作簿发布到 Tableau Server。发布工作簿(链接在新窗口中打开)
发布数据源。发布数据源(链接在新窗口中打开)
从 Tableau Server 中打开工作簿。从服务器打开工作簿(链接在新窗口中打开)
注销 Server(使用 Desktop)。登录 Tableau Server 或 Tableau Online(链接在新窗口中打开)
通过 Web 浏览器下载工作簿。下载工作簿(链接在新窗口中打开)
检查以确保 tabcmd(从非服务器客户端中)正常工作。tabcmd

相关主题

感谢您的反馈!您的反馈已成功提交。谢谢!