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

Docker部署带SSL的Nginx服务无法通过域名访问如何解决

问题排查与修复方案

核心问题点

  • 端口映射配置错误:你执行的docker run命令中仅指定-p 443,会将容器的443端口随机映射到宿主机的高位端口,且未映射80端口,访问域名时默认请求80/443标准端口自然无法连通。同时你访问公网IP显示Nginx默认页,说明宿主机本身运行了Nginx服务,已经占用了80/443端口,容器的端口根本无法绑定到标准端口上。
  • 域名解析未配置/配置错误:未确认example.com是否已经正确解析到服务器公网IP,解析错误会直接导致请求无法到达你的服务器。
  • 端口未放行:云服务器安全组、宿主机防火墙如果未放开80、443端口的入站规则,请求会被直接拦截,表现为连接超时。
  • Nginx匹配规则问题:你的Nginx配置中server_name明确指定为example.com,直接访问IP时无法匹配该服务块,会走默认的Nginx欢迎页逻辑。

修复步骤

  1. 先停止并禁用宿主机自带的Nginx服务,避免端口冲突:
sudo systemctl stop nginx
sudo systemctl disable nginx
  1. 重新启动容器,正确映射80、443端口:
sudo docker run -v /etc/letsencrypt/:/etc/letsencrypt/:ro -d -p 80:80 -p 443:443 app
  1. 验证域名解析规则,本地执行ping example.com确认返回的IP地址和你的服务器公网IP一致。
  2. 检查云服务商后台的安全组规则,放行80、443端口的TCP入站请求;同时确认宿主机内部防火墙(firewalld/ufw)也放开了对应端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:15:01