--- title: 如何部署后端服务 --- [[_TOC_]] 这里描述如何安装相关软件,增加配置,并部署后端产出物的整个过程。 以下以 Ubuntu 18.04 为例,假设访问地址为 `http://dev-app.rqm.yldev.net`。 # 准备服务器 应在 VMware vSphere 创建一(或多)台虚拟机,或由项目方 IT 提供一(或多)台 Linux 服务器。 - 安装有 OpenSSH Server,用于远程访问。 - 应仅对 Web 服务器开放 18080 ~ 18100 端口 # 安装 OpenJDK 8 应使用 `apt-get install openjdk-8-jdk` 安装 OpenJDK 8。 # 安装业务服务 后端业务服务应安装为 Systemd 服务,由以下几部分配置组成。在配置完成后,应使用 `systemctl enable xxx` 设置为重启时自动启动。 ## Systemd 配置 这里定义某个业务服务的 Systemd 配置,描述相关账户、加载的环境变量,以及执行命令等。 ```bash # /etc/systemd/system/rqm-prepare.service [Unit] Description=rqm-prepare After=syslog.target [Service] User=nobody # 以非 root 身份运行 EnvironmentFile=-/etc/default/rqm-prepare # 从此文件加载环境变量 WorkingDirectory=/opt/rqm/ ExecStart=/usr/bin/java $LOGGING $JAVA_OPTS -Dserver.port=${PORT} -Djava.security.egd=file:///dev/urandom -jar $BINARY SuccessExitStatus=143 Restart=on-failure # 如果是非正常退出则重启服务 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target ``` ## 环境变量 某个服务运行时所需的环境变量均在此文件中配置,包括运行的端口号、可执行文件以及时区等。 ```bash # /etc/default/rqm-prepare PORT=18082 BINARY=/opt/rqm/rqm-prepare.jar JAVA_OPTS=-Xms256m -Xmx1024m TZ=Asia/Shanghai # 指定当前服务运行在东八区 LOGGING="-Dlogging.config=/etc/rqm/logback.xml" # 按照指定的配置输出日志 # Service References RETROFIT_ENDPOINTS_DOCUMENT_BASE_URL=http://127.0.0.1:18083/ # 其他服务的引用地址 ``` ## 日志配置 这里定义业务服务输出的日志级别及目标。 ```xml %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n udp:graylog.ylops.net 12201 1.1 true true name=${name} true yyyy-MM-dd HH:mm:ss,SSSS INFO ``` # 部署产出物 应从后端版本库 CI 中下载产出物,并拷贝至 `/opt/rqm/` 目录中。 # 启动并测试 可使用 `systemctl start xxx` 启动单个业务服务。使用 `curl http://localhost:18082/` 访问该服务。