Bootstrap

Ubuntu22.04LTS 部署前后端分离项目

一、安装mysql8.0

1. 安装mysql8.0

# 更新安装包管理工具
sudo apt-get update
# 安装 mysql数据库,过程中的选项选择 y 
sudo apt-get install mysql-server
# 启动mysql命令如下 (停止mysql的命令为:sudo service mysql stop)
sudo service mysql start

# 查看mysql的启动状态
sudo service mysql status

# 设置开机自启
sudo systemctl enable mysql

2. 设置数据库密码

# 登录数据库,直接回车,第一次安装没有密码
sudo mysql -u root -p

# 设置你的密码 0000000改为你的密码即可
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '0000000';

# 更新你的账户保证可以所有ip访问
update user set host='%' where user ='root';

# 数据库刷新
FLUSH PRIVILEGES;

3. 修改配置,以便后面用navicat远程连接

# 打开mysql配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 将bind-address改成0.0.0.0
bind-address = 0.0.0.0

二、安装java21.0.5

# 进入到/home/linux目录,没有自行创建
cd /home/linux

# 下载安装压缩包
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz

# 创建文件夹env
mkdir env

# 将下载的压缩包放到里面
mv jdk-21_linux-x64_bin.tar.gz ./env

# 进入env并进行解压
cd ./env

tar -zxvf jdk-21_linux-x64_bin.tar.gz

# 配置系统配置文件
sudo vim /etc/profile

# 系统配置文件对应的增加以下3行
export JAVA_HOME=/home/linux/env/jdk-21.0.2    #jdk保存路径
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${CLASSPATH}:${JAVA_HOME}/bin:$PATH

# 按下esc后,输入:wq保存退出

# 刷新系统配置
source /etc/profile

# 检查java安装情况
java --version

三、Redis安装

1. 安装

sudo apt install lsb-release curl gpg

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update

sudo apt-get install redis

2. 修改Redis配置,修改密码

# 编辑配置文件
sudo vim /etc/redis/redis.conf

requirepass就是你的密码

相关的操作

启动方式一
/etc/init.d/redis-server start
启动方式二
systemctl start redis-server
启动方式三
service redis-server start
重启
service redis-server restart
关闭
service redis-server stop
查看状态
service redis-server status

四、Nginx安装

1. 安装

sudo apt update

# 安装Nginx
sudo apt install nginx

# 查看状态
sudo systemctl status nginx

# 使用UFW开放Nginx所需要的端口 80.443
sudo ufw allow 'Nginx Full'

# 开机自启
sudo systemctl enable nginx

# 检查状态
sudo systemctl status nginx

2. 常用相关口令

# 启动
sudo systemctl start nginx

# 停止
sudo systemctl stop nginx

# 重启
sudo systemctl restart nginx

# 重载配置文件
sudo systemctl reload nginx

# 取消开机自启
sudo systemctl disable nginx

# 检查状态
sudo systemctl status nginx

# 查看相关日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

3. 项目打包的dist部署

(1) 将dist上传到云服务器,如我的路径是/home/fcty/frontend/dist这样

(2)编写一个新的配置文件在frontend文件夹,注意我前端请求/api会转发

server {
    listen 80;
    server_name your_domain_or_IP;  # 替换为你的域名或IP地址

    # 服务前端静态文件
    location / {
        root /home/fcty/frontend/dist;
        try_files $uri $uri/ /index.html;  # 如果请求的文件不存在,返回index.html
    }

    # 代理 /api 路径到后端服务,并去除 /api 前缀
    location /api/ {
        proxy_pass http://127.0.0.1:8800/;
        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;
        # 下面的这行通常不是必需的,因为 Nginx 默认会转发所有请求头
        # proxy_pass_request_headers on;  # 默认已经是开启状态
    }

    # 如果有需要处理的其他路径或设置,可以在这里添加
}

 (3)将编写好的配置文件复制到对应的/etc/nginx/sites-enabled/下,注意不可以用ln,会报错

cp /home/fcty/frontend/clientconf /etc/nginx/sites-enabled

(4)检查nginx测试配置文件正常

sudo nginx -t

(5)检查无误重启即可登录成功

sudo systemctl restart nginx

;