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

Spring Boot中如何将内置Tomcat绑定到指定域名与端口

问题排查与解决方案

首先可以明确:无需额外配置Tomcat绑定域名,Tomcat默认监听所有网卡请求,域名访问失败和Spring本身的域名绑定配置无关,问题出在端口、DNS、SSL或反向代理配置环节。你提到的ActiveMQ Artemis可以通过{domain}:8443正常访问,说明域名本身的基础解析是正常的,问题集中在443端口的相关配置上。

第一步:基础配置排查

  • 先确认Spring Boot的HTTPS服务监听端口:你通过IP访问https://{IP}/api/test时没有带端口,说明Spring Boot的HTTPS服务默认监听了443端口。登录服务器执行netstat -tunlp | grep 443,确认443端口的占用进程是你的Spring Boot应用,而非Nginx、Apache等其他服务。
  • 检查Spring Boot的监听地址配置:查看application.properties/application.yml中是否配置了server.address参数,如果该参数写死了服务器内网IP或者127.0.0.1,需要删除该配置,或者改为server.address=0.0.0.0,允许来自所有网卡的请求接入。
  • 确认服务器安全组/防火墙规则:是否开放了443端口的公网入站权限,没有被拦截。

第二步:按访问报错类型排查

  • 若报错为无法解析主机:检查本地DNS缓存是否过期,Windows系统执行ipconfig /flushdns,Linux系统执行sudo systemd-resolve --flush-caches清除缓存后重试;如果还是解析失败,去域名服务商后台确认A记录是否正确指向你的服务器公网IP。
  • 若报错为连接超时/拒绝连接:回到服务器检查443端口是否正常被Spring Boot占用,确认Spring Boot服务没有异常退出。
  • 若报错为SSL证书无效/不安全:说明你当前配置在Spring Boot中的SSL证书是针对IP签发的,没有覆盖你的域名,需要重新申请对应域名的SSL证书,替换现有证书即可,配置示例如下:
    server.ssl.enabled=true
    server.ssl.key-store=classpath:your_domain_cert.p12
    server.ssl.key-store-password=证书密钥
    server.ssl.key-store-type=PKCS12
    server.ssl.key-alias=你的域名别名
    

第三步:反向代理冲突排查

如果你的服务器上部署了Nginx、Apache等反向代理服务,且443端口被反向代理占用,则需要在反向代理中添加对应域名的转发规则,将/api/*的请求转发到Spring Boot的本地服务地址,示例Nginx配置如下:

server {
    listen 443 ssl;
    server_name 你的域名;
    ssl_certificate /path/to/your_domain.crt;
    ssl_certificate_key /path/to/your_domain.key;

    location /api/ {
        proxy_pass http://127.0.0.1:8080/api/; # 8080改为你的Spring Boot实际监听端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 17:00:05