记录:离线部署
一、离线环境准备
- Java JDK
- Nginx
- MySQL:常用的数据库(有时候是其他的,比如:达梦数据库)
- Navicat:连接数据库可视化可视化工具,市面上比较常用的一款(这里为了用,也可以不需要)
二、导入数据库 SQL 文件
-
方法一:在 CMD 中执行
mysql -u root -p < D:\deploy\database.sql
按回车后输入密码 -
方法二:直接在 Navicat 工具上直接导入
三、部署与配置应用
- 修改后端 jar 包配置文件:
- 不解压直接打开jar包
- 找到 classes 文件夹下的 application.yml 配置文件(通常是这个,不是的话自己确定 yml 类型的配置文件)
- 修改,确保数据库连接信息是正确的
spring:datasource:url: jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456 # 你的MySQL密码driver-class-name: com.mysql.cj.jdbc.Driver
server:port: 8080 # 确保后端服务端口是8080(或其他你想要的端口)
四、配置 Nginx
- 目的:托管前端并反向代理后端
- 进入 Nginx 的 conf 目录
- 打开 nginx.conf 文件
- 找到 server 块,修改为以下配置(重要:请根据你的实际情况修改):
server {listen 8077; # 监听端口server_name localhost; # 服务器名,本地就是localhost# 前端静态文件配置location / {root D:\Tool\nginx-1.23.2\www\401\dist; # 前端包目录位置index index.html index.htm;try_files $uri $uri/ /index.html; # 用于支持Vue/React等前端路由的History模式# 启用目录索引功能autoindex on; # 允许所有来源访问,这在开发阶段方便,但生产环境不推荐 一般 【跨域使用】add_header 'Access-Control-Allow-Origin' '*'; # 允许发送Cookie等认证信息到服务器add_header 'Access-Control-Allow-Credentials' 'true'; # 允许的HTTP方法add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';# 允许的请求头add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,lang,access-token,*';}# 反向代理后端API配置location /api/ {proxy_pass http://localhost:8080; # 后端服务地址# 代理设置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;}# 可能还有其他代理配置,例如上传文件的路径#location /upload/ {# proxy_pass http://localhost:8080/upload/;# ...#}# 配置 404 错误页面error_page 404 /404.html;# 处理 404 错误页面请求location /404.html {# root html; # 指定根目录为htmlinternal; # 禁止直接访问该资源,仅允许内部重定向。}}
五、启动服务与测试
1、启动 Nginx
- 方法一:双击 nginx.exe
- 方法二:在 Nginx 目录中 cmd 进入终端,执行
start nginx
- 任务管理器中会出现 nginx.exe 进程
2、启动后端应用
- 在 jar 包所在目录中 cmd 进入终端
- 执行
java -jar your-app.jar
- 如果启动成功,控制台会输出 Spring Boot 的 Logo 和日志,没有报错
3、测试访问
- 打开浏览器,访问 http://localhost:8077 (这里你配置的链接地址)
- 你应该能看到前端页面
- 尝试登录或调用一个接口,功能正常则说明前端成功通过 Nginx 代理到了后端 API