前期准备
本人选用阿里云服务器ECS,底部有活动自行挑选,如下:
新用户有免费试用,可先上手试试再选择购买
操作系统我选择的是Ubuntu 22.04 UEFI版
连接服务器
- 通过Workbench远程连接,如下:
- 忘记密码,重置密码,如下:
- 登录实例,打开文件树,如下:
配置安全组
配置允许外网访问端口
路径:云服务器ECS
/安全组
- 点击
创建安全组
- 设置
访问规则
,通过访问规则开放端口号
- 实例
加入安全组
安装环境
下载注意
每次下载完软件后,会提前重启服务,类似如下:
解决办法:ECS
退出即可
更改ubuntu下载源(国内)
根据Ubuntu版本查询清华源
- 通过
vim
修改source.list
文件:sudo vim /etc/apt/sources.list
1.先按`i`进入编辑模式
2.将以下内容粘贴到文件中:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
3.按`Esc`退出编辑模式
4.输入`:wq`保存退出
- 更新
apt
:sudo apt-get update
安装node
1. 直接使用apt
安装
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm
2. 安装node
zip包
# 创建node包所在目录
mkdir /opt/software
# 切换
cd /opt/software
# 下载包 node@16.15.0
wget https://nodejs.org/dist/v16.15.0/node-v16.15.0-linux-x64.tar.xz
# 解压
tar xvJf node-v16.15.0-linux-x64.tar.xz
# 删除包
rm -rf node-v16.15.0-linux-x64.tar.xz
# 配置全局环境变量
vi /etc/profile
配置全局环境变量步骤,如下:
1.先按`i`进入编辑模式
2.将以下内容粘贴到文件顶部:
export PATH=$PATH:/opt/software/node-v16.15.0-linux-x64/bin/
3.按`Esc`退出编辑模式
4.输入`:wq`保存退出
5.保存环境变量
source /etc/profile
# 验证
node -v
npm -v
注:最好将解压后的文件名 node-v16.15.0-linux-x64 修改成 node,同时环境变量配置
export PATH=$PATH:/opt/software/node-v16.15.0-linux-x64/bin/
改成 export PATH=$PATH:/opt/software/node/bin/
更换npm
镜像
# 更改
# 旧地址 https://registry.npm.taobao.org/
# 推荐新地址 https://registry.npmmirror.com/
sudo npm config set registry https://registry.npmmirror.com/
# 查看
sudo npm config list
根据个人所需下载cnpm、yarn、pnpm
# 下载
npm install cnpm -g
npm install yarn -g
npm install pnpm -g
# 更改镜像
sudo cnpm config set registry https://registry.npmmirror.com/
sudo yarn config set registry https://registry.npmmirror.com/
sudo pnpm config set registry https://registry.npmmirror.com/
# 验证
cnpm -v
yarn -v
pnpm -v
下载git
# 下载
sudo apt-get install git
# 验证
git --version
下载nginx
# 下载
sudo apt-get install nginx
# 验证
nginx -v
下载pm2
# 下载
npm install pm2 -g
# 验证
pm2 -v
下载unzip
# 下载
sudo apt install unzip
# 验证
unzip -V
下载mysql
# 下载
sudo apt install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
# 验证
sudo systemctl status mysql
or
sudo netstat -tap | grep mysql
下载jenkins
不同系统的官方安装方法,以下是ubuntu下载步骤:
# 添加秘钥
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
# 添加安装源
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 > /dev/null
# 更新
sudo apt-get update
# 下载java
sudo apt-get install fontconfig openjdk-17-jre
# 下载jenkins
sudo apt-get install jenkins
# 检查java
java --version
# 检查jenkins
jenkins --version
# 启动
service jenkins start
nginx配置
nginx常用命令
# 编辑配置
vim /etc/nginx/nginx.conf
# 启动(下载好默认启动)
/etc/init.d/nginx start
# 检查
nginx -t
# 停止
nginx -s stop
# 重新加载
nginx -s reload
1. 配置权限
- 通过
vim
修改nginx.conf
文件:sudo vim /etc/nginx/nginx.conf
1.先按`i`进入编辑模式
2.第一行改为 user root;
3.按`Esc`退出编辑模式
4.输入`:wq`保存退出
2. nginx http配置
- server_name: 域名地址
- proxy_pass 代理地址
# 后台管理配置
server {
listen 80;
server_name xx.vliangao.cn;
location / {
root /home/blog/blog-admin/dist;
index index.html;
}
include /etc/nginx/default.d/*.conf;
}
# 前台配置
server {
listen 80;
server_name vliangao.cn www.vliangao.cn;
location / {
proxy_pass http://127.0.0.1:8000/;
}
include /etc/nginx/default.d/*.conf;
}
# 接口配置
server {
listen 80;
server_name xx.vliangao.cn;
location / {
proxy_pass http://127.0.0.1:3000/;
}
include /etc/nginx/default.d/*.conf;
}
3. nginx ssl配置
certbot生成ssl证书
# 下载
sudo apt-get install certbot
# 生成
# 二级域名
sudo certbot certonly --preferred-challenges dns --manual -d *.vliangao.cn
# 一级域名
sudo certbot certonly --preferred-challenges dns --manual -d vliangao.cn
生成TXT记录,验证是否已经部署
将生成的TXT记录,配置域名解析
生成SSL证书
查看证书有效时间
sudo certbot certificates
手动更新 默认有效期90天
# 更新
sudo certbot renew
配置nginx server
- ssl_certificate、ssl_certificate_key: ssl证书配置,修改成自己的证书地址
# 后台管理配置
server {
listen 443 ssl;
server_name xx.vliangao.cn;
ssl_certificate /etc/letsencrypt/live/vliangao.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vliangao.cn/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /home/blog/blog-admin/dist;
index index.html;
}
include /etc/nginx/default.d/*.conf;
}
# 前台配置
server {
listen 443 ssl;
server_name vliangao.cn www.vliangao.cn;
ssl_certificate /etc/letsencrypt/live/vliangao.cn-0001/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vliangao.cn-0001/privkey.pem;
# 配置 SSL 协议和加密算法
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
# 配置其他 SSL 选项
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# 配置 SSL 证书验证和安全性选项
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
location / {
proxy_pass http://127.0.0.1:8000/;
}
include /etc/nginx/default.d/*.conf;
}
# 接口配置
server {
listen 443;
server_name xx.vliangao.cn;
ssl_certificate /etc/letsencrypt/live/vliangao.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vliangao.cn/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:3000/;
}
include /etc/nginx/default.d/*.conf;
}
# http重定向到https
server {
listen 80;
server_name *.vliangao.cn;
include /etc/nginx/default.d/*.conf;
rewrite ^(.*)$ https://${host}$1 permanent;
}
mysql 配置
1. 访问并修改密码
第一次进入不需要输入密码,通过以下步骤修改密码退出后,再次进入需要输入密码。
# 进入mysql
mysql -u root -p
# 修改密码, new_password 为你要设置的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
# 更改保存
FLUSH PRIVILEGES;
# 退出
exit;
注: ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
修改密码无效
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '7z5y3o3dznpu611a';
2. 配置远程访问
- 通过
vim
修改mysqld.cnf
文件:sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
1.先按`i`进入编辑模式
2.使用#注释 bind-address、mysqlx-bind-address(如下图所示)
3.按`Esc`退出编辑模式
4.输入`:wq`保存退出
- 重启mysql
sudo systemctl restart mysql
- 修改访问权限
# 进入mysql
mysql -u root -p
# 修改访问权限,根据不同版本修改,其中password为密码
# mysql@5.x
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
# mysql@8.x
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- 测试连接成功,如下:
jenkins 配置
访问地址:ip
+端口号
(默认端口号8080)
1. 查看密码并登陆
# 查看默认密码
cat /var/lib/jenkins/secrets/initialAdminPassword
2. 安装推荐插件
3. 创建用户
4.实例配置(直接保存并完成)
5.开始使用
6. 安装插件
路径:Manage Jenkins
/Plugins
选择Available plugins
,搜索gitee
、nodejs
、Publish Over SSH
点击右侧安装
7. 配置全局工具
路径:Manage Jenkins
/Tools
选择需要的node版本,点击应用
+保存
8. 添加私人令牌
- 进入
https://gitee.com/
登录账号
或者
- 进入账号设置 —— 私人令牌 —— 生成新令牌 点击
复制
将生成的令牌保存下来
- 配置全局凭证 路径:
Manage Jenkins
/凭证
/系统
/全局凭证
9. 全局系统配置
路径:Manage Jenkins
/System
Gitee配置
选择设置好的私人令牌,测试连接
,成功
Publish over SSH 配置
10. 配置SSH Key
- 生成
# 创建 (一直回车)
ssh-keygen -t rsa -C '1289206613@qq.com'
# 查看公钥
cat ~/.ssh/id_rsa.pub
# 查看私钥
cat ~/.ssh/id_rsa
- 将公钥配置到gitee上
- 将私钥配置到jenkins上