修改root密码
passwd root
关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
关闭selinux
1、临时 getenforce setenforce 0 2、永久 修改配置文件 vim /etc/selinux/config SELINUX=enforcing改为disabled ELINUX=disabled
修改hostname
hostnamectl set-hostname luoyangligong1
如果是centos8,执行如下命令
CentOS Linux 8操作系统版本在2022年12月31日结束了生命周期(EOL),Linux社区不再维护该操作系统版本。所有的CentOS Linux 8的yum源都无效!
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*
sudo sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*
更新软件
yum update -y
安装docker
安装依赖包,yum-utils提供yum-config-manager工具,devicemapper存储驱动需要device-mapper-persistent-data和lvm2
yum install -y yum-utils
使用下面的命令安装稳定版仓库,即使安装最新体验版或者是测试版也需要稳定版仓库。
sudo yum-config-manager \\
–add-repo \\
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装最新版本的docker CE
sudo yum install -y docker-ce
启动docker
sudo systemctl start docker
docker开机启动
systemctl enable docker
编辑 /etc/docker/daemon.json加入下列配置:
{
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com/",
"https://dockerproxy.com",
"https://docker.nju.edu.cn"
]
}
重启docker sudo systemctl restart docker
docker安装mysql
如果没有镜像,则按照下列方式进行 https://blog.csdn.net/zhangkanglei/article/details/126698682?spm=1011.2415.3001.5331 如果已经在其他服务商拉取过(因为现在docker拉取镜像报错,网络不通),则用导出导入的方式 导出mysql docker save -o mysql8-image.tar mysql 把mysql8-image.tar上传到新的服务器上 导入 docker load < mysql8-image.tar 导入后就用按照文章继续进行即可
docker 安装redis
按照mysql方法导出导入,文章如下 https://blog.csdn.net/zhangkanglei/article/details/126698875?spm=1011.2415.3001.5331
安装jkd8
https://blog.csdn.net/zhangkanglei/article/details/138570063?spm=1011.2415.3001.5331
安装Tdengine
官网下载td安装包 解压td tar -zxvf TDengine-server-3.2.3.0-Linux-x64.tar.gz 进入目录,执行install.sh安装脚本 cd TDengine-server-3.2.3.0 sudo ./install.sh systemctl start taosd
安装NGINX
https://blog.csdn.net/zhangkanglei/article/details/128115495?spm=1011.2415.3001.5331
minio安装
https://blog.csdn.net/zhangkanglei/article/details/127568193?spm=1011.2415.3001.5331
nacos安装(如果没有经常需要修改的配置,可以不用)
https://blog.csdn.net/zhangkanglei/article/details/128812666?spm=1011.2415.3001.5331 把nacos设置为开机自动启动 https://blog.csdn.net/weixin_48949991/article/details/131724432
安装emqx
https://blog.csdn.net/zhangkanglei/article/details/138572515?spm=1011.2415.3001.5331
后端项目部署
创建目录(没有网关的可以不用创建gateway文件夹)
mkdir -p /data/project/backend
mkdir -p /data/project/front
mkdir -p /data/project/gateway
后端数据库创建,首先导入mysql(全部导出包括数据) 其次导入Tdengine(只运行表结构,不导入数据,在项目doc下)
后端项目打包,后端springboot项目打包命令 mvn clean package 将打包好的zhongyuan-domain-1.0.0-SNAPSHOT.jar放入 /data/project/backend中 然后同目录创建一个名为deploy.sh的部署脚本,脚本命令如下
#!/bin/bash
#######################
#脚本使用方法:
#本脚本和jar包在同一目录下,保证当前目录有且只有一个jar包即可。无需修改任何东西。
# Usage: $0 {start|stop|status|restart|log}
#######################
#可在此处添加需要加载的环境变量
#######################
if ls *.jar &>/dev/null; then
if [ $(ls *.jar | wc -l) -eq 1 ]; then
APP_NAME=$(find -maxdepth 1 -name "*.jar")
else
echo -e "\\033[31m—— Error! Too Much JAR Packages In This Directory !\\033[0"
exit 2
fi
else
echo -e "\\033[31m—— Error! No JAR Package In Current Directory !\\033[0"
exit 1
fi
exist() {
pid=$(ps aux | grep "$APP_NAME" | grep -v grep | grep "jar$" | awk '{print $2}')
if [ -z "$pid" ]; then
return 1
else
return 0
fi
}
start() {
exist
if [ $? -eq 0 ]; then
echo "${APP_NAME} is already running. pid is ${pid}."
else
nohup java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms2048m -Xmx2048m -Xmn512m -Xss512k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps "$APP_NAME" &>nohup.out &
fi
}
stop() {
exist
if [ $? -eq 0 ]; then
kill -9 "$pid"
else
echo "${APP_NAME} is not running"
fi
}
status() {
exist
if [ $? -eq 0 ]; then
echo "${APP_NAME} is running. pid is ${pid}."
else
echo "${APP_NAME} is not running"
fi
}
log() {
tail -9999f nohup.out
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
log)
log
;;
*)
echo "Usage: $0 {start|stop|status|restart|log}"
;;
esac
然后就可以用以下命令
# 启动
sh deploy.sh start
# 停止
sh deploy.sh stop
# 重启
sh deploy.sh restart
网关部署参考后端部署
前端项目部署
前端项目打包成dist文件夹 将dist文件夹拷贝到服务器/data/project/front目录下 进入/etc/nginx目录下,修改nginx.conf文件,参考示例如下
#user nobody;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
client_max_body_size 1024m;
include mime.types;
default_type application/octet-stream;
#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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# 中原工学院
server {
listen 3008;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# add_header 'Access-Control-Allow-Origin' '*';
# add_header 'Access-Control-Allow-Headers' '*';
# add_header 'Access-Control-Allow-Methods' '*';
# OPTIONS 直接返回204
if ($request_method = 'OPTIONS') {
return 204;
}
root /data/project/front/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /zhongyuan-backend {
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_set_header x-appId 379e8211-fddd-e789-6332-515130cbb2cf;
proxy_pass http://localhost:8098/zhongyuan-backend;
}
location /sso {
proxy_pass http://localhost:8098/sso;
proxy_set_header x-appId cb9bef40-28f4-5cd1-70b1-eb71c398a87c;
}
location /zhongyuan-energy {
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_pass http://localhost:8098/zhongyuan-energy;
proxy_set_header x-appId cb9bef40-28f4-5cd1-70b1-eb71c398a87c;
}
location /zhongyuan-backend/websocket {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://localhost:8098/zhongyuan-backend/websocket;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
然后执行nginx -s reload命令
访问http://localhost:3008/,如果能正常访问前端页面代表部署成功
开机自动启动后端
编辑/etc/rc.local文件
vim /etc/rc.local
增加下边代码
cd /data/project/backend
sh deploy.sh start
cd /data/project/gateway
sh deploy.sh start
赋予rc.local可执行权限 chmod +x /etc/rc.d/rc.local 配置rc.local服务 vim /usr/lib/systemd/system/rc-local.service 内容如下
[Unit]
Description=/etc/rc.d/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
说明:最后的install一段不可少,如果当前的service文件中没有这段,需手动添加(默认有前两部分) 否则服务启动时会报错 我是在原有脚本的基础上,加上这个Install这一段就可以了
启动rc-local服务
systemctl daemon-reload
systemctl start rc-local
systemctl enable rc-local
如果找不到Java命令,则把Java的全路径拼上 nohup /usr/local/java/jdk1.8.0_202/bin/java -jar -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms2048m -Xmx2048m -Xmn512m -Xss512k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps "$APP_NAME" &>nohup.out &
评论前必须登录!
注册