使用通訊埠轉送功能,取得更簡潔的網址

根據預設,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,而非間接 (透過網頁 Proxy) 轉送,因為 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
    # description: Redirect HTTPS/443 requests to
    # 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
    }
    

反向 Proxy 伺服器

您可以搭配 Looker 使用反向 Proxy。我們建議您使用 Nginx 做為反向 Proxy 伺服器。這是我們測試並完全支援的唯一反向 Proxy,但我們不一定會禁止其他選項。您可以在「Nginx 設定範例」說明文件頁面中找到 Nginx 設定範例。

請注意,Apache 反向 Proxy 有錯誤,導致 Looker 無法正確關閉連線。也就是說,即使使用者取消,每項資料庫查詢都會執行至完成。因此,請避免將 Apache 反向 Proxy 與 Looker 搭配使用。

負載平衡器

負載平衡器解決方案有很多種,從概略層面來說,負載平衡器會設為監聽通訊埠 443,並將所有要求轉送至通訊埠 9999 的 Looker。在這種情況下,SSL 伺服器憑證會安裝在負載平衡器上。

後續步驟

設定好轉送連接埠後,您就可以允許 Looker 支援團隊存取部署作業