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

Next.js 12.3生产环境HTTPS部署问题(AWS EC2环境)

Next.js 12.3 生产环境HTTPS部署配置方案(AWS EC2)

关于"Next.js原生不支持生产环境HTTPS"的说法

Next.js的生产服务器(next start)确实没有内置HTTPS支持,官方也不推荐直接用它处理生产环境的SSL连接——因为它定位是轻量服务器,缺乏反向代理具备的性能优化、安全防护、负载均衡等核心生产级能力。所以这个说法是属实的,但完全可以通过反向代理或AWS原生服务实现HTTPS部署。

方案一:Nginx反向代理(单EC2实例场景)

前提:已在EC2上完成Next.js项目构建(执行过next build)、拥有有效SSL证书、端口80/443已开放。

步骤1:安装Nginx

# Ubuntu/Debian系统
sudo apt update && sudo apt install nginx

# CentOS/RHEL系统
sudo yum install nginx

步骤2:配置Nginx反向代理

  1. 备份默认配置:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
  1. 编辑配置文件(/etc/nginx/sites-available/default),替换为以下内容:
server {
    listen 80;
    server_name your-domain.com; # 替换为你的域名

    # HTTP请求强制跳转到HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain.com; # 替换为你的域名

    # 配置SSL证书路径
    ssl_certificate /path/to/your/certificate.crt; # 替换为证书文件实际路径
    ssl_certificate_key /path/to/your/private.key; # 替换为私钥文件实际路径

    # 可选SSL优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        # 反向代理到Next.js默认端口3000
        proxy_pass http://localhost:3000;
        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;
    }
}
  1. 验证配置合法性:
sudo nginx -t
  1. 重启Nginx生效:
sudo systemctl restart nginx

步骤3:保障Next.js服务持续运行

用pm2或systemd管理进程,避免SSH断开后服务终止:

PM2方式:

# 安装PM2
npm install -g pm2

# 进入项目根目录启动服务,设置开机自启
pm2 start npm --name "next-app" -- start
pm2 startup
pm2 save

方案二:AWS应用负载均衡器(ALB)(高可用场景)

适合多实例部署或需要高可用架构的场景,无需在EC2上配置Nginx:

  1. 在AWS ACM中导入或获取你的SSL证书(需覆盖目标域名)。
  2. 创建Application Load Balancer,配置监听规则:
    • 80端口:将所有请求重定向到443端口。
    • 443端口:绑定ACM证书,流量转发到EC2实例的3000端口。
  3. 配置EC2安全组:允许ALB的安全组访问3000端口(无需开放443给公网)。
  4. 更新域名解析(Route 53或其他DNS服务商),将域名指向ALB的DNS名称。
  5. 用PM2或systemd保障EC2上的Next.js服务持续运行。

验证部署

配置完成后访问https://your-domain.com,确认页面正常加载且浏览器显示安全锁标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:05:26