自定义 Metabase Jetty Web 服务器
在大多数情况下,没有理由修改 Metabase 运行其嵌入式 Jetty Web 服务器以托管应用程序的设置,但如果您希望直接运行 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
使用 Metabase 运行 HTTPS
如果您有 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 的文档中阅读更多关于如何配置 SSL 的信息:Jetty 文档。否则,您可能会发现最简单的方法是在 Metabase 外部处理 SSL 终止。
阅读其他版本的 Metabase 的文档。