Linux部署快搭鸭
前言
本篇文档介绍在 Linux
下使用 Nginx
+ jar
包 部署 快搭鸭。
下述内容所涉及的基础环境和版本为:
- JDK 1.8
- 数据库:不限,自行安装。
- minio
- nginx:1.20.1
- redis:6.2.6
- 部署目录:/server/cet_kuaidaya
安装目录(推荐):
- kuaidaya_minio :文件服务器
- kuaidaya_monitor:系统监控
- kuaidaya_server:服务端,后端jar包
- kuaidaya_web:nginx,用来部署前端
项目部署环境安装包下载 提取码:kdya
环境部署
安装JDK
1.Linux安装jdk
1.1 jdk下载安装
在资源包下获取linux的jdk,使用xftp将jdk源码包,上传到/usr/local(软件一般安装到这个目录),使用解压命令解压
tar -zxvf jdk-8u181-linux-x64.tar.gz
1.2 配置jdk环境变量
/etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西,所以,我们要将jdk配置到/etc/profile,才可以在任何一个目录访问jdk
vim /etc/profile
按i进入编辑,在profile文件尾部添加如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_181 #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
保存并退出编辑
通过命令source /etc/profile让profile文件立即生效
source /etc/profile
1.3 测试是否安装成功
java -version
安装Redis
1.Linux安装Redis
1.1 获取并上传文件
在资源包中获取redis压缩包,连接到我们的Linux服务器,把我们下载好的Redis压缩包,上传到Linux的 /usr/local/ 文件目录下
1.2 安装gcc环境
由于redis是由C语言编写的,它的运行需要C环境,因此我们需要先安装gcc。(如果 Redis6.x 版本 make 过程中报错,可以升级 GCC)
yum install gcc-c++
1.3 编译与安装
进入到 /usr/local/redis-5.0.0/ 目录下,进行编译与安装
//进入到/usr/local/redis-5.0.0/ 文件目录下
[root@localhost mnt]# cd /usr/local/redis-5.0.0/
[root@localhost redis-5.0.0]# make //对解压后的文件进行编译
[root@localhost redis-5.0.0]# cd ./src //进入到 redis-5.0.0/src 文件目录下
[root@localhost src]# make install //进行redis安装
1.4 统一管理
为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中 (1)创建bin和etc文件夹
[root@localhost redis-5.0.0]# mkdir bin //创建bin文件夹
[root@localhost redis-5.0.0]# mkdir etc //创建etc文件夹
(2) 将redis-5.0.0目录下的 redis.conf 移动到 redis-5.0.0目录下的etc文件夹下,将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到 /usr/local/redis-5.0.0/bin/ 目录下
//将redis-5.0.0目录下的 redis.conf 移动到 redis-5.0.0目录下的src文件夹下
[root@localhost redis-5.0.0]# mv redis.conf ./etc/
[root@localhost redis-5.0.0]# cd ./src/ //进入redis-5.0.0目录下的src文件夹下
//将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到 /usr/local/redis-5.0.0/bin/ 目录下
[root@localhost src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/redis-5.0.0/bin/
1.5 启动服务
(1)进入到/usr/local/redis-5.0.0/etc/ 目录下,编辑 redis.conf配置文件,设置后台启动redis服务.
//进入到/usr/local/redis-5.0.0/etc/ 目录下
[root@localhost src]# cd /usr/local/redis-5.0.0/etc/
[root@localhost etc]# ls //查看etc目录
redis.conf
[root@localhost etc]# vi redis.conf
(2)编辑 redis.conf配置文件,开启redis远程访问服务,把 redis.conf配置文件中的 bind 127.0.0.1 这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了
(3)把 redis.conf配置文件中的 protected-mode 设置成no(默认是设置成yes的, 防止了远程访问,在redis3.2.3版本后)
(4)编辑 redis.conf配置文件,修改Redis默认密码 (默认密码为空),在配置文件中找到这一行 # requirepass foobared,删除前面的注释符号#,并把foobared修改成自己的密码 或者 另起一行 requirepass 自己的密码
1.6 设置Redis开机启动
编辑rc.local文件
[root@localhost etc]# vi /etc/rc.d/rc.local
添加如下代码到 /etc/rc.d/rc.local 中:
/usr/local/redis-5.0.0/bin/redis-server /usr/local/redis-5.0.0/etc/redis.conf
切换到 /usr/local/redis-5.0.0/bin/ 目录下执行 redis-server 命令,使用 /usr/local/redis-5.0.0/etc/redis.conf配置文件来启动redis服务
//进入到/usr/local/redis-5.0.0/bin/ 目录下
[root@localhost etc]# cd /usr/local/redis-5.0.0/bin/
[root@localhost bin]# ls //查看bin目录
mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server
[root@localhost bin]# ./redis-server /usr/local/redis-5.0.0/etc/redis.conf //启动Redis服务
打开RedisDesktopManager,测试服务是否开启 以及 是否可以远程访问Redis
安装minio
1. minio文件服务器的介绍
Minio 是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。区别于分布式存储系统,minio的特色在于简单、轻量级,对开发者友好。
2.minio的下载与安装
在资源包中下载minio文件,之后将将本地文件上传到linux服务器,创建目录
#进入到minio文件夹
cd /usr/local/minio/
#配置目录
mkdir /usr/local/minio/etc
#数据存放
mkdir /usr/local/minio/data
#查看
ll
drwxr-xr-x 2 root root 4096 Mar 4 14:17 data
drwxr-xr-x 2 root root 4096 Mar 4 14:17 etc
-rw-r--r-- 1 root root 110776320 Mar 4 14:01 minio
3.minio的启动
赋予minio权限以及启动
#赋予权限命令:
chmod +x minio
#启动命令:(/usr/local/minio/data 为你存放静态文件的目录)
./minio server /usr/local/minio/data
#后台运行命令:
nohup /usr/local/minio server /usr/local/minio/data > /usr/local/minio/data/minio.log 2>&1 &
4.minio的测试使用
外部访问网址:http://172.31.77.223:9000
服务器本地访问网址:http://127.0.0.1:9000
登录时需要输入:
AccessKey: minioadmin
SecretKey: minioadmin
./minio server --address '172.31.77.223:9000' --console-address '172.31.77.223:9001' /usr/local/minio/data
安装nginx
1.环境准备
因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。
命令:yum install gcc-c++
Nginx的http模块需要使用pcre来解析正则表达式,需要安装pcre。
命令:yum install -y pcre pcre-devel
安装依赖的解压包。
命令:yum install -y zlib zlib-devel
ssl 功能需要 openssl 库,安装 openssl。
命令:yum install -y openssl openssl-devel
2.下载与安装
1.从资源包中下载nginx,将Nginx压缩包移动到Linux的待安装目录中。 /usr/local/nginx
命令:
cd /usr/local
mkdir nginx
cd nginx
2.解压安装
使用命令:tar -zxvf nginx-1.16.1.tar.gz 解压Nginx,解压完成后,同目录下会生成Nginx的文件夹
3.依次执行以下命令:
cd /usr/local/nginx
./configure --prefix=/usr/local/nginx
make
make install
3.配置nginx.conf
输入命令:vim /usr/local/nginx/conf/nginx.conf
nginx
配置:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 限制body大小
client_max_body_size 100m;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# access_log /var/log/nginx/access.log main;
# 服务端
upstream server {
# 配置负载均衡
# ip_hash;
server localhost:8080;
# server localhost:8081;
}
# 监控服务
upstream monitor-admin {
server localhost:9090;
}
server {
listen 80;
server_name localhost;
charset utf-8;
# https配置参考 start
#listen 443 ssl;
# 证书直接存放 /docker/nginx/cert/ 目录下即可 更改证书名称即可 无需更改证书路径
#ssl on;
#ssl_certificate /etc/nginx/cert/xxx.local.crt; # /etc/nginx/cert/ 为docker映射路径 不允许更改
#ssl_certificate_key /etc/nginx/cert/xxx.local.key; # /etc/nginx/cert/ 为docker映射路径 不允许更改
#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;
# https配置参考 end
location / {
root html;
try_files $uri $uri/ /kuaidaya-ui/index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://server/kuaidaya/;
}
location /admin/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://monitor-admin/admin/;
}
error_page 500 502 503 504 404 /404.html;
location = /404.html {
root html;
}
}
}
启动Nginx
nginx
启动:cd
到sbin
下执行:./nginx
。
然后查看Nginx进程是否启动
ps -ef | grep nginx
部署后端
打包工程
配置好生产环境
application-prod.yml
数据源、cas
等。项目目录下执行
mvn clean package-Pprod
或者使用
maven
插件打包,先切换到prod
,双击clean
,双击package
打包后jar包位置:
kuaidaya-admin/target/kuaidaya-admin.jar
上传服务器
上传
jar
包到服务器/server/cet_kuaidaya/kuaidaya_server
目录下配置启动脚本
在
kuaidaya_server
目录下新建文件夹backups
(备份)、logs
(日志)、temp
(临时)restart.sh
脚本内容:
#!/bin/bash -e
#Author:ggx
#Version:V1.0
#Function:Cloud Toolkit部署Jar脚本
# 更新系统环境
#source /etc/profile
basepath=$(cd `dirname $0`; pwd)
# 根据jar的名称
jarName=kuaidaya-admin.jar
#结束进程
PID=`ps -ef|grep $basepath/$jarName |grep -v grep|awk '{print $2}' `
if [ -n "$PID" ]; then
kill -9 $PID
echo "结束$PID进程"
fi
if [ ! -f "$basepath/temp/$jarName" ]; then
# 重启
echo "文件不存在"
else
# 发版
# 备份上次的包
DATE=$(date +%Y_%m_%d-%H%M%S)
cp $basepath/$jarName $basepath/backups/kuaidaya-admin_$DATE.jar
# 删除上次的包
rm -rf $basepath/$jarName
# 准备部署文件
mv $basepath/temp/$jarName $basepath/$jarName
fi
nohup java -jar $basepath/$jarName &
echo "部署完毕!!!"
发包
- 每次发版先将
jar
包上传到temp
目录下。 cd
到/server/cet_kuaidaya/kuaidaya_server
执行./restart.sh
,第一次启动先给脚本授权 当前目录下执行:chmod a+x restart.sh。- 启动成功后,执行
tail -f nohup.out
观察执行过程。
- 每次发版先将
部署前端
项目打包
打开前端工程执行
npm run build:prod
打包好的文件位置:KuaiDaYa-ui/dist
上传服务器
在
/server/cet_kuaidaya/kuaidaya_web/html
目录下新建目录kuaidaya-ui
,将dist下的所有文件上传到/server/cet_kuaidaya/kuaidaya_web/html/kuaidaya-ui
。配置
settings.js
的cas地址
启动成功
配置
minio
进入系统访问系统管理-文件管理-配置管理
修改
minio
地址、账号、密码