云计算百科
云计算领域专业知识百科平台

【centos8服务器前后端部署】

修改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 &

至此前后端项目就算部署完成了,有啥问题或者不懂的地方评论区沟通

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【centos8服务器前后端部署】
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!