自訂 Metabase Jetty Web 伺服器

在大多數情況下,您沒有理由修改任何關於 Metabase 如何執行其嵌入式 Jetty Web 伺服器以託管應用程式的設定,但如果您希望直接使用 HTTPS 和您的 Metabase 伺服器執行,或者您需要使用另一個埠執行,則所有這些都是可設定的。

在另一個埠上執行 Metabase

預設情況下,Metabase 將在埠 3000 上啟動,但如果您希望在另一個埠上執行應用程式,您可以透過設定以下環境變數來執行

export MB_JETTY_PORT=12345
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

在此範例中,應用程式啟動後,您將在埠 12345 上存取它,而不是預設埠 3000。

監聽特定網路介面

預設情況下,Metabase 將監聽 localhost。在某些生產環境中,您可能希望監聽不同的介面,這可以使用 MB_JETTY_HOST 環境變數來完成

export MB_JETTY_HOST=0.0.0.0
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

搭配 HTTPS 使用 Metabase

如果您有 SSL 憑證,並且希望 Metabase 直接透過其 Web 伺服器透過 HTTPS 執行,您可以透過使用以下環境變數來完成

export MB_JETTY_SSL="true"
export MB_JETTY_SSL_PORT="8443"
export MB_JETTY_SSL_KEYSTORE="path/to/keystore.jks" # replace this value with your own
export MB_JETTY_SSL_KEYSTORE_PASSWORD="storepass" # replace this value with your own
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

請務必將 path/to/keystore.jksstorepass 替換為您的 Java KeyStore 的正確路徑和密碼。套用上述設定後,您將使用提供的憑證,透過 HTTPS 在埠 8443 上執行 Metabase。

不知道如何自行產生 Java KeyStore?這有點像是進階主題,但如果您躍躍欲試,您可以閱讀更多關於如何在 Jetty 中設定 SSL 的資訊,請參閱 他們自己的文件。否則,您可能會發現最容易在 Metabase 外部處理 SSL 終止。

閱讀其他 Metabase 版本的文件。