You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.9 KiB

安装jdk

安装JDK,如果没有java-1.8.0-openjdk-devel就没有javac命令

yum  install  java-1.8.0-openjdk   java-1.8.0-openjdk-devel

编译打包项目

项目最终需要进行编译打包上传到服务器,生产环境上的配置与测试环境不同,需要独立配置一些东西,满足自己的需要

1. mall4j

  1. 修改yami-shop-admin\src\main\resources\application-prod.yml 更改为生产环境的数据库账号密码,端口号等

  2. 修改yami-shop-admin\src\main\resources\log4j2_prod.xml 修改里面的PROJECT_PATH/opt/projects/yami-shops 改为自己生产环境的项目路径

  3. 修改yami-shop-api\src\main\resources\application-prod.yml 更改为生产环境的数据库账号密码,端口号等

  4. 修改yami-shop-api\src\main\resources\log4j2_prod.xml 修改里面的PROJECT_PATH/opt/projects/yami-shops 改为自己生产环境的项目路径

以上 1、2 工程目录为 yami-shop-admin 而 3、4、5 工程目录为 yami-shop-api 请注意区分

  1. 修改完毕后打包,使用mvn clean package -DskipTests 命令进行打包最终会生成很多的jar我们需要其中两个。
  • 商城后台接口 yami-shop-admin\target\yami-shop-admin-0.0.1-SNAPSHOT.jar
  • 商城前端接口yami-shop-api\target\yami-shop-api-0.0.1-SNAPSHOT.jar
  1. 将两个jar上传到centos环境中

  2. 在生产环境中运行时候,需要使用-Dspring.profiles.active=prod 在使用admin这个工程项目于生产环境的时候要添加定时任务的配置如-Dspring.profiles.active=prod,quartz,运行:

nohup java -jar -Dspring.profiles.active=prod "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &

nohup java -jar -Dspring.profiles.active=prod,quartz "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
  • 替换${jarPath}jar 所在路径
  • 替换${jarName}jar 所在路径
  • 替换${moduleName}adminapi
  1. 查看控制台日志输出
# 后台日志
tail -f ${PROJECT_PATH}/log/admin.log
# 前端接口日志
tail -f ${PROJECT_PATH}/log/api.log
  • 替换${PROJECT_PATH}logback-prod.xml 里面修改的PROJECT_PATH 路径
  1. 使用nginx将请求指向特定的端口。

2.vue

vue项目的打包构建相对比较简单但是要注意跨域的问题相关可以查阅《nginx安装与跨域配置》这篇文章。

下面来说下步骤:

  1. 修改static\config\index-prod.jsbaseUrl 改为vue的请求地址(同源策略),并携带/apis的路径,方便修改跨域的配置
  2. 使用 npm run build 命令对项目进行打包
  3. 将步骤2中生成的dist 文件夹中的文件,压缩,上传到服务器,解压
  4. 使用nginx指向上传解压好的目录
  5. 输入域名即可访问

同源策略/SOPSame origin policy是一种约定由Netscape公司1995年引入浏览器它是浏览器最核心也最基本的安全功能如果缺少了同源策略浏览器很容易受到XSS、CSRF等攻击。所谓同源是指"协议+域名+端口"三者相同即便两个不同的域名指向同一个ip地址也非同源。

对于上面vue的请求地址很多人不清楚是什么意思比如我们线上的访问 http://mall4j-admin.gz-yami.com 这个是我们的商城后台这个东西有两个特点1. 可以用浏览器打开 2.这个是前端的路径),那么根据同源策略,前端只能请求前端的路径,也就是http://mall4j-admin.gz-yami.com,那该怎么办呢?

我们static\config\index-prod.jsbaseUrl写成这个样子http://mall4j-admin.gz-yami.com/apis这就会出现一个问题明显看来这个请求的是前端呀怎么访问服务器啊答案就是nginx反向代理/apis指向我们后台启动的端口或域名就好了。相关可以查阅《nginx安装与跨域配置》这篇文章。