CentOS7.* 部署 SpringBoot 项目

一、 CentOS 7.* 安装 JAVA 环境

主要以 jdk1.8 为例

1. 检测是否存在 open-jdk

rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
# 如果存在则需要删除
rpm -qa | grep java | xargs rpm -e --nodeps

2. 使用 yum 方式安装 jdk 1.8

# 首先检索包含java的列表
yum list java*
# 检索1.8的列表
yum list java-1.8*  
# 安装 jdk 1.8 所有文件
yum install java-1.8.0-openjdk* -y

3. 检测安装

java -version
# 输出结果
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

二、安装 Redis 3.0

1. 使用 yum 方式安装 redis

# 默认不是安装最新版,我这边是 3.2
yum install redis

2. redis 常用命令

# 启动
service redis start
# 查看版本
redis-cli --version
# 设置开机启动项
chkconfig redis on

3. redis 开启远程访问

在redis的配置文件/etc/redis.conf中:
bind 127.0.0.1改为 #bind 127.0.0.1
protected-mode yes 改为 protected-mode no
加入 daemonize no(这个是是否在后台启动不占用一个主程窗口)

4. redis 设置密码

暂时不设置

三、SpringBoot 项目部署

# 运行项目
# 后台运行
nohup java -jar web-admin.jar > web-admin-log.txt &
# 接口运行
nohup java -jar rest-api.jar > rest-api-log.txt &
# 监听获取PID
ps -ef|grep web-admin.jar
# 杀掉程序
kill -9 PID
# 查看端口占用问题
netstat -ntulp | grep 8088

四、使用 Nginx 代理 SpringBoot 项目

使用 nginx 来代理的好处就是,可以共用 80 端口,同时 https 也是比较好处理

server {
        listen 443;
        server_name 你的域名;
        ssl on;     
        ssl_certificate   cert/你的证书.pem;
        ssl_certificate_key  cert/你的证书.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
                //你的项目端口号
            proxy_pass http://127.0.0.1:9999/;
            proxy_redirect off;
        }
    }

后台端口:8081

接口端口:8082

五、本地代码部署

代码类库缺失

说明:由于外包公司有自己的本地 maven 代码,简单拿他们的代码来本地运行会出现各种 包缺失 问题,需要拿到他们给的代码,使用下面方式引入到自己本地 maven 环境中。

<dependency>
  <groupId>com.github.whvcse</groupId>
  <artifactId>EasyCaptcha</artifactId>
  <version>1.5.0</version>
</dependency>
<!-- 跟上面的名字对应自来 -->
mvn install:install-file -Dfile=[JAVA 包本机地址] -DgroupId=[groupId] -DartifactId=[artifactId] -Dversion=[version] -Dpackaging=jar
  • 后台代码缺失
<!-- 验证码生成插件 -->
<dependency>
  <groupId>com.github.whvcse</groupId>
  <artifactId>EasyCaptcha</artifactId>
  <version>1.5.0</version>
</dependency>
mvn install:install-file -Dfile=/Users/liuwei/Code/JAVA/陪护床/shared-escort-bed/local-lib/EasyCaptcha-1.5.0.jar -DgroupId=com.github.whvcse -DartifactId=EasyCaptcha -Dversion=1.5.0 -Dpackaging=jar
  • API 代码包缺失说明
<dependency>
    <groupId>com.hj.base</groupId>
    <artifactId>base-api</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

mvn install:install-file -Dfile=/Users/liuwei/Code/JAVA/陪护床/shared-escort-bed/local-lib/dkm/base/base-api/1.0.0-SNAPSHOT/base-api-1.0.0-SNAPSHOT.jar -DgroupId=com.hj.base -DartifactId=base-api -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
<dependency>
  <groupId>com.hj.base</groupId>
  <artifactId>base-core</artifactId>
  <version>1.0.0-SNAPSHOT</version>
</dependency>
mvn install:install-file -Dfile=/Users/liuwei/Code/JAVA/陪护床/shared-escort-bed/local-lib/dkm/base/base-core/1.0.0-SNAPSHOT/base-core-1.0.0-SNAPSHOT.jar -DgroupId=com.hj.base -DartifactId=base-core -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
<dependency>
  <groupId>com.dkm.service</groupId>
  <artifactId>service-redis</artifactId>
  <version>1.0.0-SNAPSHOT</version>
</dependency>
mvn install:install-file -Dfile=/Users/liuwei/Code/JAVA/陪护床/shared-escort-bed/local-lib/dkm/service/service-redis/1.0.0-SNAPSHOT/service-redis-1.0.0-SNAPSHOT.jar -DgroupId=com.dkm.service -DartifactId=service-redis -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar
Last Updated: 4/14/2020, 5:33:12 PM