nextjs配合actions部署踩坑记录
in 码农笔记JavaScript笔记 with 0 comment

nextjs配合actions部署踩坑记录

in 码农笔记JavaScript笔记 with 0 comment

1. 搭建 Centos 环境

  1. 安装基本包

Centos:

开发工具链
用于编译原生模块(如 sharp、node-gyp 等)
sudo yum groupinstall -y "Development Tools"
sudo yum install -y python3 pkgconfig

Node.js
curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -
sudo yum install -y nodejs

Yarn
npm install -g yarn

Git
sudo yum install -y git

PM2
npm install -g pm2

反向代理
sudo yum install -y nginx

Ubuntu:

开发工具链
用于编译原生模块(如 sharp、node-gyp 等)
sudo apt-get install build-essential
sudo apt-get install -y python3
sudo apt-get install pkg-config

Node.js
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

Yarn
npm install -g yarn

Git
sudo apt-get install -y git

PM2
npm install -g pm2

反向代理
sudo apt-get install -y nginx

2. 设置用户

  1. 新建deploy用户
新建用户
useradd deploy

设置密码
passwd deploy

3. 安装 Runner

  1. 不能使用 root 用户安装 runner

image-20250610230550974

如果硬要使用 root ,需要配合下面的代码:
RUNNER_ALLOW_RUNASROOT=true

例如使用: RUNNER_ALLOW_RUNASROOT=true ./config.sh

image-20250610230736228

  1. 执行 Optional: Validate the hash 失败

image-20250611000436825

需要安装

yum install perl-Digest-SHA

4. 设置 nginx 环境

# upstream 定义
upstream next_prod {
    server 127.0.0.1:3000;
}
upstream next_preview {
    server 127.0.0.1:3001;
}


# 生产环境
server {
    listen       80;
    server_name  xhyf.bcsite.cn;

    # 其余全部代理到 next_prod upstream
    location / {
        proxy_pass         http://next_prod;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
        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_cache_bypass $http_upgrade;
    }
}


# 预览环境
server {
    listen       80;
    server_name  preview.xhyf.bcsite.cn;

    # 其余全部代理到 next_preview upstream
    location / {
        proxy_pass         http://next_preview;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
        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_cache_bypass $http_upgrade;
    }
}
nginx -t             检查配置文件是否有语法错误
nginx -s reload       热加载,重新加载配置文件
nginx -s stop         快速关闭
nginx -s quit         等待工作进程处理完成后关闭

5. 创建网站承载目录

mkdir www
mkdir wwwroot
mkdir stelary_preview
mkdir stelary_prod
sudo chown -R

留言: