默认情况下,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 设置默认端口,或者使用以下方法将流量重定向到其他端口:
- 使用
--port=<i>
Looker 启动选项指定所需端口,例如--port=9999
。Looker 启动选项文档页面对此选项进行了介绍。 - 创建使用
iptables
的脚本。 - 使用
xinetd
。 - 使用 Nginx 反向代理服务器。
- 使用负载均衡器。
请注意,最好将数据包直接转发到 Looker,而不是间接(通过网络代理)。因为 Looker 检测到浏览器已取消请求时,能够停止数据库查询。
Looker 主机上的 iptables
您可以使用 iptables 从其他端口访问 Looker。以下脚本会将流量从端口 443 转发到 9999。它是针对 Ubuntu Linux 编写的,如果您运行的是不同的 Linux 发行版,则可能需要进行修改。
创建脚本文件:
/etc/network/if-up.d/looker-https-forward
将以下内容添加到文件中:
#!/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
使其可执行:
sudo chmod 755 /etc/network/if-up.d/looker-https-forward
运行脚本,该脚本将在下次系统或网络重启时自动运行:
sudo /etc/network/if-up.d/looker-https-forward
Looker 主机上的 xinetd
另一种技术是使用 xinetd。
确保 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 }
创建一个名为
/etc/xinetd.d/lookerhttps
的文件。将以下内容添加到文件中:
# 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 支持团队访问您的部署了。