
主 题
常用部署
服务端端部署(blog-server)
- 打包
npm run build生成的dist文件夹打包成dist.tar pm2 stop blog-server停止服务;执行rm -rf /blog/blog-server/dist/*命令将服务器文件夹清空;将文件上传到服务器cd /blog/blog-server/dist目录中- 解压 执行
tar -xvf /blog/blog-server/dist/dist.tar -C /blog/blog-server/dist命令 - 如依赖有变动还需上传
package.json文件执行npm install安装依赖 pm2 start blog-server启动服务
用户端部署(blog-home-nuxt)
- 打包
npm run build生成的.output文件夹使用7zip软件(系统默认工具打包有问题)打包成dist.tar pm2 stop BlogHomeNuxt停止服务;执行rm -rf /blog/nuxt-home/output/*命令将服务器文件夹清空;将文件上传到服务器cd /blog/nuxt-home/output目录中- 解压 执行
tar -xvf /blog/nuxt-home/output/dist.tar -C /blog/nuxt-home/output命令 pm2 start BlogHomeNuxt启动服务
管理端端部署(blog-admin)
- 打包
npm run build生成的dist文件夹打包成dist.tar - 部署 执行
rm -rf /front/admin/blog-admin/*命令将服务器文件夹清空;将文件上传到服务器cd /front/admin/blog-admin目录中 - 解压 执行
tar -xvf /front/admin/blog-admin/dist.tar -C /front/admin/blog-admin命令完成部署
常用技巧
- 数据备份
静态资源备份命令:tar -cvf /blog/blog-server/blog-server-public.tar /blog/blog-server/public
静态资源备份命令:tar -cvf /home/server/zone/gin-zone-public.tar /home/server/zone/public
数据库数据备份命令:
mysqldump -u root -p -h localhost myblog > myblog-backup20260606.sql
mysqldump -u root -p -h 10.1.33.238 zone_db > zone_db-backup20260606.sql
常用命令
首次部署
步骤
- 重装系统为ubuntu24,打开WinSCP使用用户名ubuntu连接服务器;
- 安装以下环境和工具:
JavaScript
// 更新apt
sudo apt update && sudo apt upgrade -y
// 安装NVM
// 按照文档安装nvm https://github.com/nvm-sh/nvm?tab=readme-ov-file#installing-and-upwehpwe
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
// nvm安装报错就执行下面命令
// git config --global --unset http.proxy
// git config --global --unset https.proxy
// 找不到命令执行 source ~/.bashrc
// 安装使用NODE和NPM
nvm install 22.17.0
nvm use 22.17.0
// 安装PM2
npm install pm2 --global
// 安装MySQL
sudo apt install mysql-server
// 安装NGINX
sudo apt install nginx
// 安装REDIS
sudo apt install redis-server -y
- sudo mysql 进入mysql 然后设置账号和密码,远程连接上数据库之后,执行
SQL
CREATE USER 'xiaoming'@'localhost' IDENTIFIED BY 'xiaoming2048!@#';
-- 全部权限
GRANT ALL PRIVILEGES ON dbname.* TO 'xiaoming'@'localhost';
-- 部分权限
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER ON dbname.* TO 'xiaoming'@'localhost';
FLUSH PRIVILEGES;
-- 远程连接需要修改 /etc/mysql/mysql.conf.d/mysqld.cnf的bind-address = 0.0.0.0
-- 修改当前数据库用户密码 root
SELECT CURRENT_USER();
ALTER USER USER() IDENTIFIED BY 'root123456!@#';
-- systemctl restart mysql.service
-- systemctl status mysql.service
- 在ubuntu服务器有下面的目录,没有使用mkdir新建;
bash
sudo mkdir /opt/jxapp
# 存放系统配置
sudo mkdir /opt/jxapp/config
# 部署前端
sudo mkdir /opt/jxapp/front && cd /opt/jxapp/front
sudo mkdir blog-admin zone-admin zone test-front
# 部署后端
sudo mkdir /opt/jxapp/server && cd /opt/jxapp/server
sudo mkdir blog-server zone-server/logs blog-home-nuxt blog-home-nuxt/output
# 给ubuntu用户权限
sudo chown -R ubuntu:ubuntu /opt/jxapp
# 上传静态资源、代码包、配置文件,然后解压
tar -xvf dist.tar
- 根据目录配置nginx
bash
# 配置防火墙
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
cd /etc/nginx
sudo vim /etc/nginx/nginx.conf # 创建主配置文件
sudo vim /etc/nginx/conf.d/main.conf # 通用配置文件
sudo vim /etc/nginx/conf.d/jiang-xia.top.conf # server块为独立文件
sudo vim /etc/nginx/conf.d/admin.jiang-xia.top.conf # server块为独立文件
# 删除进入 粘贴模式 :%d | set paste | startinsert :wq保存退出
# 设置自动证书 文档 https://certbot.eff.org/instructions?ws=nginx&os=snap
- 运行服务的准备与配置
- zone-server
chmod +x ./main
pm2 start ./main --name zone-server
sql
-- 建立本地连接账号
CREATE USER 'jxzone'@'127.0.0.1' IDENTIFIED BY 'jxzone2048!@#';
GRANT ALL PRIVILEGES ON zone_db.* TO 'jxzone'@'127.0.0.1';
FLUSH PRIVILEGES;
- blog-server
pm2 start ecosystem.config.js --env production
sql
CREATE USER 'jxblog'@'127.0.0.1' IDENTIFIED BY 'jxblog2048!@#';
GRANT ALL PRIVILEGES ON myblog.* TO 'jxblog'@'127.0.0.1';
FLUSH PRIVILEGES;
数据库中没有18888888888会自动生成roleId为3的账号,密码为super,需要手动关联表中改为1才是超级管理员;
- blog-home-nuxt
pm2 start ecosystem.config.js --env production

全部评论(2)