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

如何在cPanel附加域部署Next.js应用(端口3000,不影响其他域名)

解决方案:附加域无端口访问Next.js且不影响主域

针对你的场景(cPanel环境下主域占用80端口,附加域需反向代理到3000端口的Next.js应用),以下是两种可行方案:

方案一:Apache反向代理(cPanel默认环境)

cPanel默认使用Apache,通过.htaccess配置反向代理是最便捷的方式:

  1. 确认附加域配置
    在cPanel中完成new-website.com的附加域添加,文档根目录可任意设置(反向代理会跳过该目录直接指向3000端口)。

  2. 创建反向代理规则
    进入cPanel的「文件管理器」,打开附加域的根目录,新建/编辑.htaccess文件,添加以下规则:

    RewriteEngine On
    # 仅匹配new-website.com域名
    RewriteCond %{HTTP_HOST} ^(www\.)?new-website\.com$ [NC]
    # 将所有请求反向代理到本地3000端口的Next.js应用
    RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]
    
  3. 启用Apache代理模块(若未开启)
    通过SSH登录服务器,执行以下命令启用必要模块并重启Apache:

    sudo a2enmod proxy proxy_http
    sudo systemctl restart httpd
    
  4. 后台运行Next.js应用
    使用PM2确保应用持续运行(避免SSH断开后停止):

    npm install pm2 -g
    # 启动Next.js应用并命名为next-app
    pm2 start npm --name "next-app" -- start
    # 设置开机自启
    pm2 startup
    # 保存当前进程配置
    pm2 save
    

方案二:Nginx反向代理(cPanel兼容模式)

若你切换到Nginx,需确保配置仅针对附加域,避免与主域冲突:

  1. 启用cPanel的Nginx反向代理
    在cPanel的「服务配置」→「Apache和NGINX设置」中,勾选「使用NGINX作为Apache的反向代理」并保存。

  2. 添加附加域的Nginx自定义配置
    通过SSH进入Nginx的用户自定义配置目录(路径示例,根据cPanel用户调整):

    mkdir -p /etc/nginx/conf.d/userdata/80/new-website.com/
    vi /etc/nginx/conf.d/userdata/80/new-website.com/proxy.conf
    

    写入以下配置:

    server {
        listen 80;
        server_name new-website.com www.new-website.com;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            # 传递域名信息给Next.js,避免路由识别错误
            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;
        }
    }
    
  3. 重启Nginx生效

    sudo systemctl restart nginx
    

问题排查说明

  • 之前Nginx代理失败:大概率是未指定server_name或未设置proxy_set_header Host $host,导致Next.js无法正确识别请求域名。
  • 改80端口冲突:80端口只能被一个服务占用,主域的Web服务已占用,因此Next.js不能直接绑定80。
  • next export异常:若你的Next.js应用使用了SSR、API路由、Server Components等动态功能,静态导出会丢失这些特性,只能通过反向代理运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:05:45