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

Oracle Linux服务器Nginx配置异常:返回默认Oracle页面及重定向问题咨询

聊聊你的Nginx配置问题

咱们先拆解你遇到的两个核心问题:之前的重定向循环,以及现在返回Oracle默认页面的原因,再给你对应的修复方案。

一、为啥加了HTTP→HTTPS重定向就触发ERR_TOO_MANY_REDIRECTS?

重定向循环本质就是请求在HTTP和HTTPS之间来回跳,结合你的配置来看,大概率是这几个原因:

  • HTTPS服务的匹配逻辑乱了:你的HTTP server块给IPv6的80端口设了default_server,但两个HTTPS server块都没设这个属性。如果用IP访问,或者请求的域名和HTTPS块里的server_name不匹配,Nginx会默认选第一个HTTPS块处理。要是这时候你的Node.js应用或者某个隐藏配置又把请求导回HTTP,循环就来了。
  • $host变量的坑:如果请求的Host头和HTTPS块的server_name完全对不上,$host可能会被解析成服务器IP,而你的HTTPS块又没配置IP对应的证书或规则,请求处理异常后又跳回HTTP,形成死循环。
  • 重复的HTTPS块搞事情:你有两个几乎一模一样的HTTPS server块(就差个被注释的root),Nginx匹配请求时会变得不可预测,尤其是当域名同时匹配两个块时,很容易触发异常跳转。

二、移除重定向后为啥返回Oracle默认页面?

你的HTTP server块只有监听端口和server_name,完全没写处理请求的location规则或者默认响应。当请求打到80端口时,Nginx找不到对应的处理逻辑,就会启用自带的静态文件服务——Oracle Linux默认的Nginx根目录是/usr/share/nginx/html,里面就是那个Oracle默认页面。

三、怎么修复?

1. 把HTTP→HTTPS重定向配置对(解决循环)

修改你的HTTP server块,让它专门处理HTTP请求并统一转HTTPS,别留漏洞:

server {
    listen 80;
    listen [::]:80 default_server;
    server_name ****; # 换成你的实际域名,或者用 _ 匹配所有域名

    # 用301永久重定向,比302对SEO更友好
    return 301 https://$host$request_uri;
}

2. 删掉重复的HTTPS server块

留一个就行,要是需要给不同域名做HTTPS服务,确保每个块的server_name是唯一的:

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name ****; # 替换成你的实际域名

    # 重要!别忘了加SSL证书配置(你之前的配置里没写,这是HTTPS必须的)
    ssl_certificate /path/to/your/cert.pem;
    ssl_certificate_key /path/to/your/key.pem;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://localhost:8080/;
        proxy_ssl_session_reuse off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_redirect off;
    }
}

3. 几个要注意的点

  • 确保SSL证书和密钥的路径是对的,不然HTTPS请求会失败,也可能间接导致重定向循环。
  • 如果需要用IP访问,在HTTPS块里加server_name 你的服务器IP;,避免因域名不匹配导致的异常处理。
  • 检查下你的Node.js应用内部有没有强制跳HTTP的逻辑,如果有,改成通过X-Forwarded-Proto头判断实际请求协议(因为Nginx已经做了反向代理,应用拿到的是本地的HTTP请求,得靠这个头识别用户实际用的是HTTPS)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:52:34