返回文章

blog 项目 Ubuntu 22.04 部署手册(上篇:服务器环境部署)

新服务器首次部署基础设施准备:系统初始化、Node.js 20 + PM2、MySQL 8、Redis、Nginx、Jenkins 的安装与配置。

发布于 2026-07-03阅读量 52字数 2404
后端Node.js

上篇:服务器环境部署

> 本篇为基础设施准备,新服务器首次部署时按顺序执行,后续项目迭代无需重复。

1. 系统初始化


sudo apt update && sudo apt upgrade -y

sudo apt install -y vim wget curl unzip zip git lrzsz openssl ca-certificates gnupg build-essential rsync lsof

建议只开放公网需要访问的端口。MySQL 和 Redis 与后端在同一台机器,默认只监听 127.0.0.1,不要开放到公网。


sudo ufw allow 22/tcp

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

sudo ufw allow 8080/tcp

sudo ufw enable

sudo ufw status

创建部署目录:


sudo mkdir -p /www/blog/serve /www/blog/web/dist /www/blog/admin/dist

sudo chown -R ubuntu:ubuntu /www/blog

2. 安装 Node.js 20 和 PM2


curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

sudo apt install -y nodejs

node -v

npm -v



sudo npm config set registry https://registry.npmmirror.com

sudo npm install -g pm2

pm2 -v

如果 Jenkins 构建时找不到 node/npm/pm2,在 Pipeline 中显式设置:


export PATH=/usr/local/bin:/usr/bin:/bin:$PATH

3. 安装 MySQL 8


sudo apt install -y mysql-server

sudo systemctl enable mysql

sudo systemctl start mysql

sudo systemctl status mysql

初始化数据库和密码:


sudo mysql


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的MySQL密码';

CREATE DATABASE IF NOT EXISTS blog_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

FLUSH PRIVILEGES;

EXIT;

验证:


mysql -uroot -p你的MySQL密码 -e "SHOW DATABASES;"

备份命令:


mysqldump -uroot -p你的MySQL密码 --default-character-set=utf8mb4 blog_system > /www/blog/backup_blog_system_$(date +%F_%H%M%S).sql

恢复命令:


mysql -uroot -p你的MySQL密码 --default-character-set=utf8mb4 blog_system < backup.sql

4. 安装 Redis


sudo apt install -y redis-server

sudo systemctl enable redis-server

编辑配置:


sudo vim /etc/redis/redis.conf

建议配置:


bind 127.0.0.1 ::1

protected-mode yes

port 6379

requirepass 你的Redis密码

maxmemory-policy allkeys-lru

appendonly yes

重启并验证:


sudo systemctl restart redis-server

redis-cli -a 你的Redis密码 ping

返回 PONG 即正常。

5. 安装 Nginx


sudo apt install -y nginx

sudo systemctl enable nginx

sudo systemctl start nginx

6. 安装 Jenkins

安装 JDK 和 Jenkins:


sudo apt install -y openjdk-17-jdk

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list

sudo apt update

sudo apt install -y jenkins

sudo systemctl enable jenkins

sudo systemctl start jenkins

初始化密码:按 Jenkins 页面提示在服务器本机查看,公开博客不要展示具体命令输出。

建议安装插件:

Git Plugin

Pipeline

SSH Agent

NodeJS Plugin

配置 Git SSH 凭据:在 Jenkins 凭据管理中新增 SSH 凭据,并把对应公钥添加到代码托管平台。公开博客不要展示私钥、凭据 ID 或真实仓库地址。

目录权限:


sudo chown -R jenkins:jenkins /www/blog

PM2 注意:

Jenkins 用户启动的 PM2 进程归 Jenkins 管。

如果之前用 ubunturoot 启动过同名 PM2,先统一停掉,避免两个用户各有一套 PM2。


pm2 delete blog-server || true

sudo -u jenkins pm2 delete blog-server || true

评论留言

登录后可留言和点赞
一片冰心黔ICP备2026012107号