跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问 Spring Boot 网站部署最佳实践
未分類
20 3 月 2020

请问 Spring Boot 网站部署最佳实践

请问 Spring Boot 网站部署最佳实践

資深大佬 : wuhuaji 19

由于工作需要,进入 Java 领域,但有 PHP 后端经验,使用 Spring Boot 开发了一个网站,现在部署有些问题,想请教一下。

查了一下资料,似乎分为两大派,jar 包和 war 包。其中 jar 包中包含了 tomcat; war 则不包含,需要在服务器部署好 tomcat,再把 war 放到对应的位置。

那么看来,jar 包是更便捷的,直接 java -jar 就可以运行。又因为不能直接前台运行,就需要 nohup 把其放入后台。

又查到,可以通过 spring-boot-maven-plugin 插件,把 jar 包打包成可执行文件,放入系统自起动中 /etc/init.d,还可以通过 start | stop | restart 等命令控制。

我又想到可以在前端放一个 Nginx,转发给 tomcat,能提升性能。

所以我现在的做法是,打包成 jar 包可执行文件 -> 配置开机自起 + Nginx 接受请求转发给 tomcat 。这样的一套组合。

想请问这是否是最佳实践,还有什么需要注意的么?比如像日志、报错啥的怎么处理?

请教大家

大佬有話說 (10)

  • 資深大佬 : vinsa

    用 google jib 编译成 docker image

  • 主 資深大佬 : wuhuaji

    @vinsa 谢谢,后期可能会上 docker, 不过现在还不想太复杂,先把基本的搞清楚了。

  • 資深大佬 : vinsa

    @wuhuaji 非常简单啊,服务器安装好 docker,就 OK 了。 比你写 shell 启停脚本还简单。
    额外的好处:更新部署快。 每次更新,大部分情况下都只需传输 class 文件那层,估计几百 K 。因为 lib/静态文件之类的都被 docker image 分层缓存了。

    你理解的复杂可能是容器的编排与管理。在你访问量到一定规模之前,完全不会涉及。

  • 主 資深大佬 : wuhuaji

    @vinsa 对,我说的复杂是容器编排打包管理这些,因为现在主要想了解原生部署实践,日后应用变大,自然会考虑 docker 来做

  • 資深大佬 : oneisall8955

    两种都用过。war 包给 tomcat 管理,jar 包 JAVA 命令自己管理。自己新学的话,打 jar 包吧比较简单

  • 資深大佬 : qyvlik

    推荐使用 docker,这样不管输出的 jar 还是 war 问题都不大
    1. 为你的 spring-boot 项目编写 Dockerfile (可以包含 spring-boot 的打包命令)
    2. 创建 {project}-docker 的 git 项目,这样就可以将编排文件进行代码跟踪
    1. docker-compose.yml 文件
    2. nginx 的 config 文件
    3. .env 文件,管理关键变量,可以通过 docker 注入到 spring-boot 的运行环境
    4. 其他敏感信息用 docker secret 或者加密文件的方式处理
    3. linux 系统 + docker + docker-compose + git
    4. mysql 、redis 、消息队列等 最好不要包含在 {project}-docker,这样就可以方便的在不同的服务器上部署,迁移。

    部署的时候,配置好系统和 docker 、docker-compose 、git 公钥,创建好目录,如下三行命令就可以在配置好的服务器上启动你的 spring-boot
    “`bash
    git clone {project}-docker
    cd {project}-docker
    docker-compose up
    “`

  • 資深大佬 : liqingcan

    花 1 天时间学一下 docker 的简单实用。然后直接上 docker 。

  • 主 資深大佬 : wuhuaji

    @qyvlik 谢谢,很详细

    @liqingcan docker 简单使用我会的:)

  • 資深大佬 : Cbdy

    一般用 systemd + java -jar app.jar
    或者 docker
    我也见过用 pm2 的

  • 資深大佬 : kkkkkrua

    @Cbdy #9 supervisor 呢。。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具