WAR部署方案 === >[info] Version: 2.4+ 版本 ## 正式环境部署 > 部署方案采用nginx+tomcat部署方案 > 后端服务发布部署到tomcat中 > 前端项目build后dist部署到nginx中 ### 一、后台项目jeecg-boot打war包(jeecg-boot-module-system) #### (1)后台项目jeecg-boot-module-system打war包之前要进行如下改动 1、pom.xml文件中项目打包格式设置为war <packaging>war</packaging> 具体配置如下: ``` <parent> <groupId>org.jeecgframework.boot</groupId> <artifactId>jeecg-boot-parent</artifactId> <version>2.4.0</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>jeecg-boot-module-system</artifactId> <packaging>war</packaging> ``` 2、pom.xml文件删除插件spring-boot-maven-plugin 下面配置删除 ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 3、增加项目web容器部署的支持: 修改类 jeecg-boot-module-system/org.jeecg.JeecgSystemApplication 代码如下: ``` package org.jeecg; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class JeecgSystemApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(JeecgSystemApplication.class); } public static void main(String[] args) { SpringApplication.run(JeecgSystemApplication.class, args); } } ``` 4、注释掉WebSocket配置 ``` 将此类注释掉 jeecg-boot-base/jeecg-boot-base-core/org.jeecg.config.WebSocketConfig ``` 5、修改配置文件(数据库和redis配置) - a、修改数据库连接 application-prod.yml - b、修改缓存redis配置 application-prod.yml - c、修改上传附件配置 application-prod.yml ![](https://img.kancloud.cn/6a/c7/6ac7a6aecae500779b4b7aec3adf724f_1541x785.png) - d、切换生产模式打包 ![](https://img.kancloud.cn/04/36/0436a40e4b27e6a999a247776d2a6080_355x250.png) 首先执行下jeecg-boot-parent的install 操作 ![](https://img.kancloud.cn/64/90/64909b0e1567c4cf480416122d8203a5_385x299.png) 然后 maven package 打war包 ![](https://img.kancloud.cn/ad/30/ad30bcc8fd15328bdac98a240617f906_272x234.png) ### 二、后台项目jeecg-boot部署tomcat 1、设置tomcat端口号 8080,设置tomcat编码 URIEncoding="UTF-8" 2、部署项目到tomcat安装目录webapps/jeecg-boot工程目录下 部署完后通过http://localhost:8080/jeecg-boot 可以访问项目,提示token错误说明部署成功!! ``` 注意: 1.tomcat解压war后的目录名称即你访问的根路径,即这里的jeecg-boot 2.新版的swagger需要访问http://localhost:8080/jeecg-boot/doc.html ``` ### 三、前台项目build 1、修改 .env.production ``` NODE_ENV=production VUE_APP_API_BASE_URL=https://bootapi.jeecg.com VUE_APP_CAS_BASE_URL=http://localhost:8888/cas VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview ``` 2、build项目 使用build命令打包项目 ![](https://img.kancloud.cn/fc/97/fc97693b7368344d23f87bea72e3cca1_507x899.png) build完成后台会生成一个dist的目录该目录下即为build后的文件。 4、nginx部署前端项目 拷贝dist下的代码到nginx安装目录下html目录中,即可 ### 四、nginx配置(conf/nginx.conf) nginx监听80端口 ``` server { listen 80; server_name 你的域名; #后台服务配置,配置了这个location便可以通过http://域名/jeecg-boot/xxxx 访问 location ^~ /jeecg-boot { proxy_pass http://127.0.0.1:8080/jeecg-boot/; proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 location / { root html; index index.html index.htm; if (!-e $request_filename) { rewrite ^(.*)$ /index.html?s=$1 last; break; } } } ``` 4、访问应用 配置后启动tomcat,启动nginx 通过http://你的域名/ 访问项目,出现如下页面,使用账户/密码:admin/123456 登录成功即可 ![](https://img.kancloud.cn/b5/7f/b57f05022451900c30660953965b428e_919x893.png)