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

如何解决Node.js+Nginx部署HTTPS时的404错误

排查Node.js + Nginx HTTPS下登录页404的问题

嘿,作为经常帮人踩Node+Nginx部署坑的老鸟,我来给你梳理下可能的问题点!首先得先确认一个细节:你提到首页是https://ap.locals,登录页是https://ao.locals/login——这两个是不同的域名对吧?如果是这样,那第一个要排查的就是Nginx的配置:

1. Nginx是否为ao.locals配置了HTTPS Server块?

如果你的Nginx只配置了ap.locals的HTTPS规则,那访问ao.locals时,Nginx找不到对应的配置,会 fallback到默认的server块(如果有的话),而默认块里没有指向你的Node项目,自然就返回404了。

你可以打开Nginx的配置文件(通常在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下),看看有没有针对ao.locals的server配置。正确的HTTPS server块大概长这样:

server {
    listen 443 ssl;
    server_name ao.locals;

    # 替换成你的SSL证书路径
    ssl_certificate /path/to/your/ao.locals.cert.pem;
    ssl_certificate_key /path/to/your/ao.locals.key.pem;

    location / {
        # 替换成你的Node项目运行的端口
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

如果没有这个配置,就复制一份ap.locals的配置,把server_name改成ao.locals,确认证书路径正确,然后重启Nginx:sudo systemctl restart nginx。

2. 如果是域名笔误(比如应该是https://ap.locals/login),检查Nginx路由转发规则

如果登录页其实是同一个域名下的子路径,那问题大概率出在Nginx的location配置上。比如你可能误加了try_files规则,导致Nginx尝试去本地找静态文件,而不是转发给Node.js服务器:

❌ 错误配置示例:

location / {
    try_files $uri $uri/ =404; # 这个会让Nginx优先找本地文件,找不到直接返回404
}

✅ 正确配置应该把所有请求都转发给Node:

location / {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

另外,再确认下你的Node项目里确实有/login路由,而且HTTP环境下http://ap.locals/login能正常访问(你说HTTP下正常,这个应该没问题,但再测一遍更稳妥)。

3. 检查本地DNS解析是否正确

有时候ap.locals和ao.locals的本地解析可能不一致,比如一个指向你的DigitalOcean服务器IP,另一个指向了别的地方?你可以在本地终端运行ping ao.locals,看看返回的IP是不是你的服务器IP。如果不是,就得修改本地hosts文件:

  • Windows:C:\Windows\System32\drivers\etc\hosts
  • Mac/Linux:/etc/hosts
    添加一行:你的服务器IP ao.locals

4. 查看Nginx错误日志找线索

如果上面的方法都没解决,就去看Nginx的错误日志,里面会有更详细的404原因。日志路径通常是/var/log/nginx/error.log,运行:

sudo tail -f /var/log/nginx/error.log

然后访问https://ao.locals/login,看看日志里输出的错误信息,这能帮你精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:31:56