自定义 Metabase Jetty Web 服务器
在大多数情况下,没有理由修改 Metabase 运行其嵌入式 Jetty Web 服务器以托管应用程序的任何设置,但如果您希望直接使用 Metabase 服务器运行 HTTPS 或需要在另一个端口上运行,这些都是可配置的。
在另一个端口上运行 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.jks
和 storepass
替换为您的 Java KeyStore 的正确路径和密码。应用上述设置后,您将使用提供的证书通过 HTTPS 在端口 8443 上运行 Metabase。
不知道如何自行生成 Java KeyStore?这是一个高级主题,但如果您想尝试,可以在 Jetty 的官方文档中阅读更多关于如何配置 Jetty 中的 SSL 的信息。否则,您可能会发现最简单的方法是在 Metabase 外部处理 SSL 终止。
阅读其他版本的 Metabase 的文档。