Docker构建的容器Web应用仅本地可访问 公网及AWS部署返回404错误
仅本地可访问、外部无法打开的修复方案
- 优先检查
main.py中的Web服务监听配置:如果服务监听地址写的是127.0.0.1/localhost,只能接收容器内部的本地请求,外部所有流量都无法接入。将监听host修改为0.0.0.0,端口保持你声明的2328即可。 - 检查容器启动命令的端口映射规则:需添加
-p 0.0.0.0:2328:2328参数,确保宿主机的2328端口绑定到容器对应端口,避免默认仅绑定本地回环地址。
AWS部署返回404 No Such Service的修复方案
- 确认AWS对应服务的安全组入站规则已开放2328端口的公网访问权限,测试阶段可临时设置源地址为
0.0.0.0/0,验证通断后再收窄权限范围。 - 若使用ECS/EKS部署,检查负载均衡目标组配置:目标组的端口、协议需和容器2328端口匹配,健康检查路径需为应用实际存在的路径,只有健康检查通过的实例才会收到负载均衡转发的流量。
- 若使用API Gateway/CloudFront作为入口,检查路由规则是否匹配你请求的路径,后端服务端点的IP、端口、路径前缀是否填写正确。
- 若使用Elastic Beanstalk部署,确认环境配置中的端口映射指向2328,而非默认的80端口。
Dockerfile优化建议
你当前的Dockerfile存在冗余拷贝逻辑,重复执行了两次COPY blockSchedule.txt /app,虽然不会直接引发服务异常,但建议删除冗余行,避免构建镜像时出现不必要的问题。
内容的提问来源于stack exchange,提问作者Alphabet1671
相关产品推荐
相关产品推荐

