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

Docker安装带Certbot的Nginx反向代理返回404错误如何解决

问题排查与解决建议

  • 先验证反向代理后端服务可用性
    进入Nginx容器内部执行命令curl http://172.17.0.2:80,如果该请求本身就返回404,说明问题出在172.17.0.2对应的后端服务,而非Nginx配置,需要优先排查后端服务的运行状态与路由配置。
  • 确认Nginx已加载当前域名配置
    执行命令nginx -T(大写T,会打印所有已加载的配置内容),检查输出结果中是否包含你编写的这两个server块。如果没有加载,通常是因为配置文件未放在Nginx的include目录下,或是文件名没有以.conf为后缀导致的。
  • 校验访问域名与server_name匹配性
    如果你直接通过IP访问,或是访问的域名和配置中填写的domainname.com/www.domainname.com不一致,会匹配到Nginx的默认server块,直接返回404。可以通过加请求头的方式测试:curl -v -H "Host: domainname.com" 你的服务器公网IP,确认返回结果是否正常。
  • 调整80端口的跳转规则
    当前配置里80端口的server块仅匹配指定host时才跳转HTTPS,其余所有请求直接返回404。你可以删掉现有两个if判断和最后的return 404行,统一替换为return 301 https://$host$request_uri;,实现所有HTTP请求强制跳转HTTPS,避免非预期的404。
  • 检查Docker端口映射配置
    确认启动Nginx容器时已经配置了正确的端口映射:-p 80:80 -p 443:443,如果端口映射错误、或是宿主机80/443端口被其他服务占用,也会导致访问到错误的服务返回404。
  • 避免使用固定容器IP作为代理目标
    Docker容器重启后内部IP会发生变化,会导致代理失效。建议将Nginx容器和后端服务容器加入同一个自定义Docker网络,在proxy_pass中直接填写后端服务的容器名即可,无需写固定IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:21:00