H2数据库Web UI访问报错:Host not found及HTTP 404问题求助
问题解决:H2 2.x版本Web UI无法访问(404/Host not found)
核心原因
H2数据库从2.x版本开始,Web控制台的默认路径由旧版本的/h2/变更为/h2-console/,这是导致访问原路径出现404的直接原因。
分步解决步骤
1. 验证路径变更
直接访问xyz.com/h2-console/测试是否能正常加载Web UI。如果是路径问题,这一步即可解决。
2. 检查Kubernetes Ingress配置
若使用Ingress转发流量,确认Ingress规则中是否正确映射H2的Web端口(8082),且路径匹配新的/h2-console/:
# 示例Ingress配置片段 spec: rules: - host: xyz.com http: paths: - path: /h2-console/ pathType: Prefix backend: service: name: h2-service port: number: 8082
3. 自定义控制台路径(可选)
如果需要保留旧路径/h2/,可在H2启动参数中添加-webRoot指定自定义路径:
args: - -cp - /opt/h2/h2.jar - org.h2.tools.Server - -baseDir - /opt/h2/data - -tcp - -tcpPort - "9092" - -tcpAllowOthers - -web - -webDaemon - -webPort - "8082" - -webAllowOthers - -webRoot - /h2 # 将控制台路径设置为/h2/ - -ifNotExists
添加后即可通过原路径xyz.com/h2/访问。
4. 排查网络连通性
若以上步骤无效,执行以下操作确认K8s内部连通性:
- 进入同Namespace的Pod,执行
curl http://h2-service:8082/h2-console/,检查是否能返回控制台页面内容。 - 查看H2 Pod的
-trace日志,确认404请求的路径是否为旧的/h2/,进一步验证路径问题。
内容的提问来源于stack exchange,提问作者snukone
相关产品推荐
相关产品推荐

