当前位置: 首页 > news >正文

多环境_部署项目

多环境:

指同一套项目代码在不同的阶段需要根据实际情况来调整配置并且部署到不同的机器上。

为什么需要?

1. 每个环境互不影响
2. 区分不同的阶段:开发 / 测试 / 生产
3. 对项目进行优化:
   1. 本地日志级别
   2. 精简依赖,节省项目体积
   3. 项目的环境 / 参数可以调整,比如 JVM 参数

针对不同环境做不同的事情。

多环境分类:

1. 本地环境(自己的电脑)localhost
2. 开发环境(远程开发)大家连同一台机器,为了大家开发方便
3. 测试环境(测试)开发 / 测试 / 产品,单元测试 / 性能测试 / 功能测试 / 系统集成测试,独立的数据库、独立的服务器
4. 预发布环境(体验服):和正式环境一致,正式数据库,更严谨,查出更多问题
5. 正式环境(线上,公开对外访问的项目):尽量不要改动,保证上线前的代码是 “完美” 运行
6. 沙箱环境(实验环境):为了做实验

前端多环境实战

请求地址

  开发环境:localhost:8000

  线上环境:user-backend.code-nav.cn

startFront(env) {if(env === 'prod') {// 不输出注释 // 项目优化// 修改请求地址} else {// 保持本地开发逻辑}}


  用了 umi 框架,build 时会自动传入 NODE_ENV == production 参数,start NODE_ENV 参数为 development

打包之后会自动生成静态的网页文件

启动方式

  开发环境:npm run start(本地启动,监听端口、自动更新)
  线上环境:npm run build(项目构建打包),可以使用 serve 工具启动(npm i -g serve)

项目的配置

  不同的项目(框架)都有不同的配置文件,umi 的配置文件是 config,可以在配置文件后添加对应的环境名称后缀来区分开发环境和生产环境。参考文档:https://umijs.org/zh-CN/docs/deployment

  开发环境:config.dev.ts
  生产环境:config.prod.ts
  公共配置:config.ts 不带后缀

后端项目区分环境:

在配置文件后加-prod 

 
可以在启动项目时传入环境变量:

java -jar .\user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

提示:在连接线上数据库时可能报错:

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves. Edit the list of disabled algorithms to include required algorithms. You can try to enable TLSv1 or TLSv1.1 first.JDBC driver may have disabled TLS > 1.1.

解决办法:

在URL中添加在数据库后面添加?createDatabaseIfNotExist=true&useSSL=false

如:jdbc:mysql://192.168.2.2:3306/test?createDatabaseIfNotExist=true&useSSL=false

打包好后运行线上jar包

cd .\target\
java -jar .\user-center-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

学到的朋友求点个赞吧

http://www.lryc.cn/news/125836.html

相关文章:

  • go web框架 gin-gonic源码解读02————router
  • 【Java后端封装数据】常见后端封装数据的格式,用于返回给前端使用(109)
  • 无脑入门pytorch系列(三)—— nn.Linear
  • SQL Server用sql语句添加列,添加列注释
  • springBoot中service层查询使用多线程CompletableFuture(有返回值)
  • 畜牧虚拟仿真 | 鱼授精过程VR模拟演练系统
  • 第一百一十四回 局部动态列表
  • 多尺度目标检测【动手学深度学习】
  • elasticsearch 基础
  • 【BUG】docker安装nacos,浏览器却无法访问到页面
  • C#引用Web Service 类型方法,添加搜索本地服务器Web Service 接口调用方法
  • yolov8训练进阶:新增配置参数
  • 轻量级自动化测试框架WebZ
  • 如何实现安全上网
  • Redis心跳检测
  • 【数据库】Sql Server可视化工具SSMS条件和SQL窗格以及版本信息
  • Python SFTP 详细使用
  • MyBatis的XML映射文件
  • UML-类图和对象图
  • 升级指定版本Node.js或npm
  • UE4/5 GAS技能系统入门3 - GameplayEffect
  • Linux交叉编译opencv并移植ARM端
  • TypeScript教程(一)简介与安装
  • 做视频_Style
  • vue3使用pinia和pinia-plugin-persist做持久化存储
  • 数据结构入门指南:二叉树
  • 大数据课程J2——Scala的基础语法和函数
  • 03-基础入门-搭建安全拓展
  • 穿越未来:探索虚拟现实科技的未来前景
  • SQL- 每日一题【1327. 列出指定时间段内所有的下单产品】