Spring Boot 官网文档简单翻译 Part VI

Part VI. Deploying Spring Boot Applications

文档说明:

  • 文档对应的版本为 2.1.0.M3
  • 这不是文档的完整中文翻译,也有可能跟原文文字不一一对应,只是我阅读文档时候做的简单笔记
  • 如果对应的章节没有任何中文,有可能是文档内容比较少,建议直接看原文,或者是我不感兴趣的部分
  • 目录标题没有做翻译,首先标题一般一眼就能看懂什么意思,不做翻译还能保证原文意思,其次也方便对应到原文位置

62. Deploying to the Cloud

Spring Boot 的可执行 jar 文件使用于大部分的 PaaS(Platform-as-a-Service)平台。这些平台就是希望你的应用自己准备所有的东西。他们管理的是应用进程,并不是 Java 应用。

62.1 Cloud Foundry

62.1.1. Binding to Services

62.2 Heroku

62.3 OpenShift

62.4 Amazon Web Services (AWS)

62.4.1. AWS Elastic Beanstalk

Using the Tomcat Platform

Using the Java SE Platform

62.4.2. Summary

62.5 Boxfuse and Amazon Web Services

62.6 Google Cloud

63. Installing Spring Boot Applications

除了可以通过 java -jar 来运行 Spring Boot 应用,还可以对 Unix 操作系统制作完整可执行的应用。一个完整可执行的 jar 就是类似其他可执行的二进制程序一样,或者可以通过 init.d 或者 systemd 注册。这样的话,安装和管理在大部分生产环境都会变得非常容易。

注意:Fully executable jars 是在文件的前面嵌入了一段脚步来实现的,可以把 jar 或者 war 解压出来查看。目前有些工具并不能识别这种文件格式,所以你不能在所有场景都使用这个功能。

制作一个 fully executable jar,需要添加如下依赖:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <executable>true</executable>
    </configuration>
</plugin>

63.1 Supported Operating Systems

默认的脚步支持大部分的 Linux 发行版本,并在 CentOS 和 Ubuntu 上验证通过。其他平台,例如 OS X 和 FreeBSD,需要自定义嵌入的脚本。

63.2 Unix/Linux Services

Installation as an init.d Service (System V)

建立 jar 的连接到 init.d 并支持 start、stop、restart 和 status 命令:

  • jar 文件的属主可以启动服务
  • 可通过 /var/run/<appname>/<appname>.pid 来查看应用的进程 PID
  • 日志写到 /var/log/<appname>.log 文件

假如你的应用在 /var/myapp,那么安装到 init.d 的操作如下:

$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp
$ service myapp start

Securing an init.d Service

不要以 root 用户来启动服务。

保护 jar 文件:

$ chmod 500 your-app.jar
# This will prevent any user, including root, from modifying the jar
$ sudo chattr +i your-app.jar

保护 conf 配置文件:

$ chmod 400 your-app.conf
$ sudo chown root:root your-app.conf

Installation as a systemd Service

假设应用的位置是 /var/myapp,想要以 systemd 服务的形式来安装 Spring Boot 应用,你需要在 /etc/systemd/system 目录创建一个名为 myapp.service 的脚本文件,内容样例如下:

[Unit]
Description=myapp
After=syslog.target

[Service]
User=myapp
ExecStart=/var/myapp/myapp.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Description, User, 和 ExecStart 需根据自己应用的实际情况填写。

Note: ExecStart 字段没有在脚本里面声明,意味着默认采用 run 命令来启动服务。

PID 和 日记记录都交给 systemd 管理了。

开机后启动:

$ systemctl enable myapp.service

Customizing the Startup Script

默认嵌入的启动脚本是有 Maven 或者 Gradle 插件提供的,有很多方法可以实现定制化,甚至可以使用 embeddedLaunchScript 来完全使用自己写的脚本。

Customizing the Start Script when It Is Written

配置 Maven 或者 Gradle 插件的 embeddedLaunchScriptProperties 属性。

Customizing a Script When It Runs

通过环境变量或者一个配置文件

63.3 Microsoft Windows Services

[winsw][]

[]winsw]: https://github.com/kohsuke/winsw

64. What to Read Next

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,423评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,339评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,241评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,503评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,824评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,262评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,615评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,337评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,989评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,300评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,829评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,193评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,753评论 3 230
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,970评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,708评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,295评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,207评论 2 258

推荐阅读更多精彩内容