根據預設,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 反向 Proxy 伺服器。
- 使用負載平衡器。
請注意,最好直接將封包轉送至 Looker,而非間接 (透過網頁 Proxy) 轉送,因為 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 # 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 支援團隊存取部署作業。