针对Tableau Server配置反向代理

Posted TableauAnalysis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了针对Tableau Server配置反向代理相关的知识,希望对你有一定的参考价值。

一、反向代理如何与 Tableau Server 配合工作

下图说明了当客户端向配置为使用反向代理服务器的TableauServer 发出请求时的通信路径。

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

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

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

4、反向代理将内容发回给客户端。就客户端而言,它刚与Tableau Server 进行了交互,并且无法得知反向代理已传递了通信。

二、代理服务器和SSL

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

移动访问

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

如果在代理服务器网关处配置了身份验证,则代理服务器必须使用 HTTP 302 响应来响应 Tableau Mobile HTTP 请求。302 必须重定向到身份提供程序登录页面。

三、反向代理和用户身份验证

Tableau Server 会始终验证用户的身份。这意味着,即使在组织网关处对入站连接进行身份验证,Tableau Server 仍将验证用户的身份。因此,推荐采用不会在网关处提示Tableau Desktop 或浏览器用户请求进行身份验证的透明方案。这种推荐方案不会禁止在网关代理处为客户端/服务器系统级别身份验证使用 SSL,事实上,强烈建议使用 SSL 系统级别身份验证。

可以将 SAML、OpenID Connect 或 Trusted Tickets 与反向代理一起使用。

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

1、不支持将启用自动登录 (SSPI) 的 Active Directory 与反向代理一起使用。

2、在将 Tableau Server 配置为使用 Kerberos 之前,必须针对反向代理配置 Tableau Server。

四、将Tableau Server 配置为使用反向代理服务器

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

说明

对应的 tsm  configuration set选项

 

gateway.trusted

FQDN

人员访问 Tableau Server 所使用的完全限定的域名,如 tableau.example.com。Tableau Server 不支持为此选项使用 URL,例如 example.com/tableau。

gateway.public.host

非 FQDN

人员访问 Tableau Server 所使用的完全限定的域名,如 tableau.example.com。Tableau Server 不支持为此选项使用 URL,例如 example.com/tableau。

gateway.trusted_hosts

别名

代理服务器的任何公共备用名称。大多数情况下,会使用 CNAME 值指定别名。例如,代理服务器 bigbox.example.com 以及 CNAME 条目 ftp.example.com 和 www.example.com

gateway.trusted_hosts

端口

从客户端到反向代理服务器的流量的端口号。


 gateway.public.port

 

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

1、输入以下命令以设置客户端通过代理服务器访问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'

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

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

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 -v gateway.public.port -k '443'

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

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

tsm pending-changes apply

五、将反向代理服务器配置为使用 Tableau Server

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

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

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

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


标题

说明

相关的TableauServer配置

REMOTE_ADDR 和 X-FORWARDED-FOR (XFF)

HOST 和 X-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。

 

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

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

 




以上是关于针对Tableau Server配置反向代理的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置——单域名反向代理多个端口

五Nginx多Server反向代理配置

apache与tomcat 反向代理

在Server2003上配置nginx反向代理nodejs。

Nginx配置反向代理

nginx配置反向代理和负载均衡