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

Nginx访问dev.redacted.it跳转至错误站点问题求助

Nginx站点跳转异常排查与解决

问题场景

使用Nginx配置三个站点:

  • 静态站点:dev.redacted.it(监听80端口,根目录/var/www/annunci)
  • 静态站点:redacted.it(监听80端口,根目录/var/www/html)
  • SpringBoot应用代理站点:tickets.redacted.it(监听443端口,代理至127.0.0.1:8080)

所有配置已软链接至sites-enabled目录,重载配置无报错,nginx -T检查配置语法正常。但访问http://dev.redacted.it时自动跳转到https://tickets.redacted.it,http://redacted.it访问正常。已排查目录权限(755 | root:root)、更换端口,问题仍存在。

排查与解决步骤

1. 清除缓存与验证DNS解析

  • 清除浏览器缓存(快捷键Ctrl+Shift+Del),或使用隐私窗口访问http://dev.redacted.it,排除旧跳转记录干扰。
  • 本地执行nslookup dev.redacted.it,确认解析IP为目标服务器IP,排除DNS劫持或解析错误。

2. 检查默认服务器匹配规则

Nginx会将第一个加载的listen 80的server块作为默认服务器(未显式指定default_server时):

  • 执行nginx -T | grep -A 10 "listen 80",查看所有监听80端口的server块加载顺序。若存在未清理的ticket站点80端口配置,会导致匹配错误。
  • 为dev.redacted.it的server块强制指定默认服务器,避免被其他规则覆盖:
server {
    listen 80 default_server;
    server_name "dev.redacted.it";

    root /var/www/annunci;

    location / {
        autoindex on;
    }
}

重载配置:sudo nginx -s reload后重新测试。

3. 排查后端应用跳转逻辑

若请求被误代理至SpringBoot应用,会触发后端跳转:

  • 查看Nginx访问日志:tail -f /var/log/nginx/access.log,访问dev.redacted.it时,观察请求是否被转发至8080端口。
  • 直接访问http://127.0.0.1:8080,检查是否自动跳转到tickets.redacted.it。若是,需检查SpringBoot配置(如application.properties中的server.redirect-to-https、自定义跳转过滤器)。

4. 检查全局重定向规则

  • 查看nginx.conf的http块,确认无全局return或rewrite规则误匹配dev.redacted.it。
  • 检查sites-enabled目录下的其他配置文件(如默认的default文件),排除隐藏的跳转规则。

5. 验证HSTS与SSL证书影响

若浏览器曾访问过dev.redacted.it的HTTPS版本,可能触发HSTS强制跳转:

  • Chrome浏览器中访问chrome://net-internals/#hsts,查询并删除dev.redacted.it的HSTS记录。
  • 检查tickets.redacted.it的SSL证书SAN字段,确认未包含dev.redacted.it域名,避免浏览器混淆跳转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:25:26