Linux下部署springboot框架项目——以litemall项目为例

作者:c_chun 发布时间: 2025-09-04 阅读量:36 评论数:0

网上的很多接口或者ui自动化教程的项目都是很不全面的,这时候需要我们自己搭建一个真实的项目到自己的服务器,本文将介绍如何搭建litemall的小商场系统(Gitee 仓库https://gitee.com/linlinjava/litemall.git)。litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端,项目有管理后台前端和小商城前端,对于新手的接口自动化和ui自动化练习来说是一个很完整的项目,

1、环境准备

  • MySQL(用于数据库初始化);

  • JDK 1.8+(后端运行环境);

  • Maven(后端构建工具);

  • Node.js(前端依赖管理,建议 v14+);

  • nginx (Web 服务器

1.1 软件安装

1、安装jdk

# 1. 查看可安装的JDK版本(确认有jdk1.8)
apt search openjdk-8-jdk       # Ubuntu

# 2. 安装JDK 8(带开发工具,满足Spring Boot运行)
apt install -y openjdk-8-jdk             # Ubuntu

# 3. 验证安装成功(显示java版本即正常)
java -version
javac -version  # 若显示版本,说明开发工具也安装成功

2、安装Maven

# 1.更新包的列表,确保安装最新新版
sudo apt update

# 2.安装maven
sudo apt install maven

# 3.验证安装
mvn -version

3、安装nginx

# 安装 Nginx
sudo apt install nginx -y

# 安装完成后,启动 Nginx 并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 验证是否安装成功(查看版本)
nginx -v

4、安装mysql数据库

# 安装 mysql
sudo apt install mysql-server -y

# 启动 MySQL 服务
sudo systemctl start mysql

# 设置开机自启
sudo systemctl enable mysql

# 验证服务状态(显示 "active (running)" 即正常)
sudo systemctl status mysql

5、 安装Node.js

# 安装最新版Node.js
sudo apt install nodejs npm -y

# 验证安装
node -v
npm -v

1.2 创建数据库、导入数据库数据

# 登录MySQL后执行,创建数据库(库名建议为litemall,与配置一致)
CREATE DATABASE IF NOT EXISTS litemall CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
#创建用户
mysql -u root -p litemall < /root/litemall/litemall-db/sql/litemall_schema.sql

#导入表结构
mysql -u root -p litemall < /root/litemall/litemall-db/sql/litemall_table.sql

#导入表数据
mysql -u root -p litemall < /root/litemall/litemall-db/sql/litemall_data.sq

1.3 下载源码

git clone https://github.com/linlinjava/litemall.git 

2、后端启动

2.1 配置国内 Maven 镜像 为避免 Maven 下载依赖时出现网络问题,建议配置国内镜像:

# 1.查看Maven路径
mvn -v     #查看Maven home: /usr/share/maven 信息


# 2.确定settings路径为/usr/share/maven/conf/settings.xml
vim /usr/share/maven/conf/settings.xml

# 3.添加配置文件
<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/central</url>
</mirror>

2.2 后端代码打包与运行

# 打包项目
mvn -U clean install

# 进入target目录,执行jar包(后台运行)
/root/litemall/litemall-all/target
# 启动jar包
nohup java -Dfile.encoding=UTF-8 -jar litemall-all-0.1.0-exec.jar > litemall.log 2>&1 &

测试登录接口,接口返回成功,就说明后端服务启动成功

3、前端启动

推荐使用前端项目打包后的 dist 目录(通常包含静态文件如 HTML、CSS、JS、图片等)配合 Nginx 启动前端服务,核心原理是 通过 Nginx 作为静态资源服务器,直接对外提供 dist 目录中的文件访问,并处理前端路由、跨域等问题。

3.1 获取 dist 目录
前端项目通过打包命令(如 npm run build)生成 dist 目录,

# 使用 npm 安装依赖
npm install
# 打包(需进入 litemall-admin 和 litemall-vue 目录下执行打包命令)
npm run build

打包成功后,会在项目根目录看到 dist 文件夹,包含:

  • index.html(入口页面)

  • css/js/(编译后的样式和脚本)

  • img/fonts/(静态资源)

3.2 配置 Nginx 指向 dist 目录

Nginx 通过配置文件(通常在 /etc/nginx/ 目录下)定义如何处理请求,核心是在 server 块中指定 dist 目录路径,并配置路由规则。

1 、将 dist 目录放到服务器指定位置

为便于管理,建议将 dist 目录放在 Nginx 常用的静态资源目录(如 /var/www/)下,例如:

我的前端商城和后台管理dist文件分别放在 /var/www/mall_dist 和 /var/www/admin_dist目录下

2、创建 / 修改 Nginx 配置文件

nginx的配置文件一般在/etc/nginx/nginx.conf目录下

进入nginx.conf配置文件,将配置内容写入其中

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

    # 后端服务地址(统一管理,方便修改)
    upstream backend_server {
        server 123.123.123.23:8080;  # 你的后端服务地址
        keepalive 32;  # 保持连接复用,提升性能
    }

    server {
        listen       80;
        server_name  123.123.123.23;  # 服务器IP

        # 1. 管理后台静态资源(优先处理静态文件)
        location /admin/ {
            alias   /var/www/admin_dist/dist/;  # 管理后台静态资源目录
            index  index.html;
            # 先尝试访问静态资源,不存在则转发API请求
            try_files $uri $uri/ @proxy_admin_api;
        }

        # 管理后台API代理(处理/admin/开头的接口,如/admin/auth/login)
        location @proxy_admin_api {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;  # 传递原始主机名
            proxy_set_header X-Real-IP $remote_addr;  # 传递客户端真实IP
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;  # 传递协议(http/https)
            proxy_http_version 1.1;  # 启用HTTP/1.1,配合keepalive
            proxy_set_header Connection "";  # 清除连接头,使用长连接
        }

        # 2. 商城静态资源(优先处理静态文件)
        location /mall/ {
            alias   /var/www/mall_dist/dist/;  # 商城静态资源目录
            index  index.html;
            # 支持Vue路由刷新
            try_files $uri $uri/ /mall/index.html;
        }

        # 3. 商城API代理(处理/wx/开头的接口,如/wx/auth/login)
        location /wx/ {
            proxy_pass http://backend_server;
            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;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
        }

        # 4. 根路径默认行为(可选:重定向到商城首页)
        location / {
            return 302 /mall/;  # 访问IP时自动跳转到商城
        }

        # 错误页配置
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

3、配置完成后,检测配置文件是否正确,并重启nginx

#检测配置文件是否正确
nginx -t

重启nginx
systemctl restart nginx

4、

配置完成后,可以通过以下地址访问系统:

商城前端:http://服务器IP/mall

后台管理系统:http://服务器IP/admin

后台管理页面

评论