You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Tomcat服务时如何修改基础URL解决跳转错误问题

问题解决方法

根因说明

应用内跳转链接错误是因为Tomcat与ERDDAP默认使用容器内部的localhost:8080生成站内绝对路径,不知道外部实际访问的域名和端口。

优先方案:通过环境变量配置(无需修改配置文件)

你使用的axiom/docker-erddap镜像原生支持通过环境变量指定基础访问地址,直接修改docker-compose.yml的environment节点添加配置即可:

services:                              
  erddap-server:                       
    image: axiom/docker-erddap
    container_name: erddap-server
    ports:
      - 8081:8080
    environment:
      - ERDDAP_MIN_MEMORY=1G
      - ERDDAP_MAX_MEMORY=2G
      # 新增以下配置,填写你实际的外部访问根地址
      - ERDDAP_BASE_URL=http://my-docker-server.com:8081/my_app/
    env_file:
      - .env
    restart: unless-stopped

修改后重新执行docker compose up -d重启容器即可生效,所有站内链接会自动使用你配置的根地址生成。

备选方案:修改Tomcat配置(环境变量不生效时使用)

如果镜像版本较旧不支持上述环境变量,可以通过修改Tomcat的server.xml配置告知外部访问参数:

  1. 找到容器内/usr/local/tomcat/conf/server.xml的8080端口Connector配置,新增proxyName、proxyPort、scheme三个属性:
<Connector server="Apache" port="8080" protocol="HTTP/1.1"
           proxyName="my-docker-server.com"
           proxyPort="8081"
           scheme="http"
/>
  1. 将修改后的server.xml挂载到容器内,在docker-compose.yml中新增volumes配置:
volumes:
  - ./本地修改后的server.xml路径:/usr/local/tomcat/conf/server.xml
  1. 重启容器即可生效。

注意事项

  • 如果后续切换为HTTPS访问,需要将ERDDAP_BASE_URL的前缀改为https,如果用Tomcat配置方案则要把scheme改为https、proxyPort改为HTTPS对应的外部端口。
  • 根地址结尾记得加/,避免生成链接时出现路径拼接错误。

内容的提问来源于stack exchange,提问作者RedM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:06:06