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