WAR部署方案 2.4+ === 此文档已更新至2.4版本, 老版本请看 [2.3之前版@WAR部署文档 ](http://jeecg-boot.mydoc.io/?t=345683) ## 正式环境部署 > 部署方案采用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://static.oschina.net/uploads/img/201904/14221455_vj7T.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://static.oschina.net/uploads/img/201901/30163255_iNMZ.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; } } } ``` ### 五、nginx 开启压缩,提高首页访问效率 nginx.conf 的 http 中加入以下片断 ~~~ # gzip config gzip on; gzip_min_length 1k; gzip_comp_level 9; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary on; gzip_disable "MSIE [1-6]\."; ~~~ 参考图: ![](https://img.kancloud.cn/d2/79/d279f6e535bbb110d9aa973662da0280_988x768.png) 参考链接: https://github.com/zhangdaiscott/jeecg-boot/issues/88 ***** 配置后启动tomcat,启动nginx 通过http://你的域名/ 访问项目,出现如下页面,使用账户/密码:admin/123456 登录成功即可 ![](https://img.kancloud.cn/b5/7f/b57f05022451900c30660953965b428e_919x893.png)