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

生产环境下Next.js应用HTTPS运行问题:域名无法访问求助

问题描述

服务器已配置域名,Docker端口映射为443:443,自定义server.js启用HTTPS,部署后可通过https://[IP]访问Next.js应用,但https://[域名]无法访问,DNS解析已生效72小时,本地https://localhost访问正常。启动命令为yarn build; node server.js,server.js代码如下:

const { createServer } = require("https");
const { parse } = require("url");
const next = require("next");
const fs = require("fs");
const dev = process.env.NODE_ENV !== "production";
const PORT = 443;
const app = next({ dev });
const handle = app.getRequestHandler();
const httpsOptions = {
  key: fs.readFileSync("./certificate/private.key"),
  cert: fs.readFileSync("./certificate/certificate.crt"),
};

app.prepare().then(() => {
  createServer(httpsOptions, (req, res) => {
    const parsedUrl = parse(req.url, true);
    handle(req, res, parsedUrl);
  }).listen(PORT, (error) => {
    if (error) {
      throw err;
    }

    console.log(`> Server started on https://localhost:${PORT}`);
  });
});
排查步骤
  • 检查证书与域名的匹配性
    确认SSL证书是颁发给当前使用的域名的,用openssl x509 -in certificate.crt -text -noout查看证书详情,检查Subject Alternative Name(SAN)是否包含你的域名(需覆盖www和非www场景)。若证书仅绑定IP,域名访问会触发SSL信任错误。

  • 验证Docker容器内的证书文件

    1. 进入容器:docker exec -it <容器ID> /bin/bash
    2. 查看./certificate目录是否存在,以及private.key和certificate.crt文件是否可读
    3. 若文件缺失或权限错误,需在docker-compose.yml中添加正确的卷挂载配置,示例:
      volumes:
        - ./certificate:/app/certificate
      

    确保容器内路径与server.js中读取路径一致。

  • 检查服务器防火墙/安全组规则
    确认服务器防火墙(如iptables、ufw)或云服务商安全组允许443端口的入站请求,无针对域名的限制规则。可临时关闭防火墙测试,或添加明确规则允许所有IP访问443端口。

  • 检查Next.js配置
    在next.config.js中确认是否设置了assetPrefix或basePath,若设置非域名路径会导致资源访问错误。同时启动Next.js时可指定hostname:

    const app = next({ dev, hostname: 'your-domain.com' });
    
  • 查看容器运行日志
    执行docker logs <容器ID>查看node服务启动日志,排查是否有证书读取失败、端口监听失败等异常。比如fs.readFileSync找不到文件会抛出异常,导致服务无法正常启动。

  • 通过curl调试请求
    在本地或服务器执行curl -v https://your-domain.com,查看请求细节:

    • 若返回SSL错误,说明证书不匹配或信任问题
    • 若返回连接超时,说明端口未开放或路由异常
    • 若返回404,说明请求未被Next.js正确处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:42:36