要解决的问题
直接访问服务器 IP 与访问域名可能进入不同的 server 块。同一路径出现不同结果时,先固定 Host 与连接地址,再比较应用和代理。这样不需要修改公共 DNS,也不依赖本机代理软件的行为。
适用环境
Ubuntu 上的 curl 与 Nginx;示例域名 zandindh.com 和端口需要按实际部署调整。
操作步骤与示例
将以下内容放在对应终端或脚本中执行。示例路径、服务名需要与你的环境一致。
curl -i --noproxy '*' --max-time 10 http://127.0.0.1:8000/healthz
curl -i --noproxy '*' --max-time 10 --resolve zandindh.com:80:127.0.0.1 http://zandindh.com/healthz
nginx -t如何判断结果
第一条直接访问应用,第二条向回环的 80 端口发送域名请求。如果第二条返回 HTTPS 跳转,这本身可能符合配置;先看 Location,再决定检查 HTTPS。404 响应里的 Server 头可作线索,但不足以单独证明错误由哪一层生成。
常见问题与排查
对 HTTPS 做回环检查时,域名、端口和证书名必须一致;不要通过跳过证书校验掩盖配置问题。proxy_pass 后的路径和斜杠可能影响上游请求路径,修改前应核对现有规则与实际路由。
适用边界
这套检查不会更改 DNS 或 server_name。默认站点、静态文件权限、应用不存在的路由都可能返回 404,不能仅凭浏览器页面外观选择修复措施。