端口更清晰的端口转发

默认情况下,HTTPS 会假定端口为 443。这意味着,https://looker.yourdomain.com 将像用户输入 https://looker.yourdomain.com:443 一样被自动处理。但是,使用标准 HTTPS 端口 (443) 需要以 root 用户身份运行 Looker,这也是不受支持的,因此不推荐使用。

一种方法是让用户在访问 Looker 时将端口号指定为网址的一部分。例如,如果您使用的是端口 9999,则它们会输入:https://looker.yourdomain.com:9999

为方便起见,我们建议您设置其他默认端口,以便用户可以输入 https://looker.yourdomain.com 并获得正确的端口。您可以为 Looker 设置默认端口,或者使用以下方法将流量重定向到其他端口:

请注意,最好将数据包直接转发到 Looker,而不是间接(通过网络代理)。因为 Looker 检测到浏览器已取消请求时,能够停止数据库查询。

Looker 主机上的 iptables

您可以使用 iptables 从其他端口访问 Looker。以下脚本会将流量从端口 443 转发到 9999。它是针对 Ubuntu Linux 编写的,如果您运行的是不同的 Linux 发行版,则可能需要进行修改。

  1. 创建脚本文件:

    /etc/network/if-up.d/looker-https-forward
    
  2. 将以下内容添加到文件中:

    #!/bin/sh
    # Forward HTTPS traffic to the Looker app
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 9999
    
  3. 使其可执行:

    sudo chmod 755 /etc/network/if-up.d/looker-https-forward
    
  4. 运行脚本,该脚本将在下次系统或网络重启时自动运行:

    sudo /etc/network/if-up.d/looker-https-forward
    

Looker 主机上的 xinetd

另一种技术是使用 xinetd。

  1. 确保 xinetd 允许来自所有所需地址的传入流量。在 /etc/xinetd.conf 的默认部分中添加:

    {
    only_from = 0.0.0.0
    # or replace 0.0.0.0 with an IP range
    # (i.e., 128.0.0.0/16) if desired
    }
    
  2. 创建一个名为 /etc/xinetd.d/lookerhttps 的文件。

  3. 将以下内容添加到文件中:

    # default: on
    #
    # Looker default port 9999
    service https
    {
    disable = no
    id = lookerhttps
    socket_type = stream
    protocol = tcp
    user = root
    wait = no
    redirect = 127.0.0.1 9999
    }
    

反向代理服务器

您可以将反向代理与 Looker 搭配使用。我们建议的反向代理服务器是 Nginx。它是我们测试并全面支持的唯一逆向代理,不过我们不一定禁止其他选项。您可以在示例 Nginx 配置文档页面上找到示例 Nginx 配置。

请注意,Apache 反向代理存在bug,导致 Looker 无法正确关闭连接。这意味着,即使用户取消查询,每次数据库查询也会运行完成。因此,您应避免将 Apache 反向代理与 Looker 搭配使用。

负载均衡器

有很多负载平衡器解决方案可供选择。概括地讲,负载均衡器将配置为监听端口 443,并将所有请求转发到端口 9999 的 Looker。在这种情况下,您的 SSL 服务器证书将安装在负载均衡器上。

后续步骤

配置端口转发后,您就可以允许 Looker 支持团队访问您的部署了