参考
关于虚拟机的安装
关于虚拟机的联网
关于部署前后端分离项目到 Linux 服务器
工具
总结
修改核心配置
- 日志配置:修改日志输出编码格式,使用 UTF-8;
- 应用配置:后台服务器启动端口、redis 服务器地址、token 的规则;
- 数据源配置:数据库的连接方式;
前端项目打包
- 下载和安装依赖:
npm isntall
或 yarn install
;
- 打包成 dist 目录:
npm run build:prod
;(指定为生产环境版本)
注意配置静态文件的引用地址。
后端项目打包部署
jar 包
- maven 打包:
mvn package
;
- 打完包后台运行:
nohup java -jar <jar包>.jar &
。
war 包
- pom.xml 指定打成 war 包:
<packaging>war</packaging>
;
- 如果要部署到单独的 web 容器,那么要排除 SpringBoot 自带的 tomcat 容器:
1 2 3 4 5
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
|
- 编写一个启动的辅助类:
1 2 3 4 5 6
| public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(<原启动类>.class); } }
|
- 把war包放到tomcat/webapps中;如果要把后台项目部署到根路径,可以参考:将应用部署到Tomcat根目录的三种方法。
nginx.conf 配置代理
保证权限:user root;
;
配置代理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| server { listen 80; server_name localhost;
location / { # root指根路径,值为项目的根目录 root /root/dist; index index.html index.htm; }
# 代理转发路径为v1的接口到后端 location /v1/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:9527/v1/; }
# 代理转发路径为profile的接口到后端 location /profile/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:9527/profile/; } }
|
修改完配置文件记得重启 nginx:./nginx -s -reload
。