服务器Centos部署Spring boot 前后端项目的详细步骤
作者:WeChat098
使用centos部署前后端项目,使用的是centos 8,后端用的是Spring,前端用的是Vue,使用下面的步骤进行部署:
- 安装MySQL
这一步有多种方式进行安装,可以使用包管理器,可以使用安装包解压缩进行安装,但是最终都需要使用对配置文件进行配置,我建议大家可是尝试下面的MySQL脚本就行安装,只需要在里面改动值就可以。
vi InstallMySQL.sh
- 创建bash文件,填入下面的内容
#!/bin/bash # https://blog.csdn.net/qq_41054313 #数据库密码 mysqlPWD="lhDream@123" echo "--MySQL5.7安装--" echo "下载依赖环境" yum -y install wget wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm echo "开始安装" yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server echo "启动MySQL" systemctl start mysqld.service systemctl status mysqld.service a=$(systemctl status mysqld.service | grep "active (running)" | wc -l) if [ $a -gt 0 ] then echo "启动完成,状态正常" #配置MySQL echo "配置MySQL" str=$(grep "password is generated for root@localhost:" /var/log/mysqld.log) localPWD=${str##*"root@localhost: "} echo "数据库默认密码:"$localPWD export MYSQL_PWD=$localPWD echo "重置数据库密码为:"$mysqlPWD mysql --connect-expired-password -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$mysqlPWD'" echo "刷新权限" export MYSQL_PWD=$mysqlPWD mysql --connect-expired-password -uroot -e "flush privileges" echo "配置远程登录" mysql --connect-expired-password -uroot -e "grant all privileges on *.* to 'root'@'%' identified by '$mysqlPWD' with grant option" echo "配置数据库编码" echo "[client]" > /etc/my.cnf echo "default-character-set=utf8" >> /etc/my.cnf echo "" >> /etc/my.cnf echo "[mysqld]" >> /etc/my.cnf echo "datadir=/var/lib/mysql" >> /etc/my.cnf echo "socket=/var/lib/mysql/mysql.sock" >> /etc/my.cnf echo "character-set-server=utf8" >> /etc/my.cnf echo "collation-server=utf8_general_ci" >> /etc/my.cnf cat /etc/my.cnf #重启MySQL查看配置结果 systemctl restart mysqld systemctl status mysqld.service mysql --connect-expired-password -uroot -e "status" echo "安装完成" else echo "状态异常,安装失败" fi #rm -f mysql57-community-release-el7-10.noarch.rpm echo "exit"
bash InstallMySQL.sh
运行脚本,查看安装进度
安装Redis
vi InstallRedis.sh
#!/bin/bash # 安装版本 redis_version="6.2.7" # 安装目录 #redis_installDir="/opt/module/redis" redis_installDir="/opt/bigdata/redis" install_redis() { local version=$1 local installDir=$2 local redisconf_file=$installDir/redis-$version/redis.conf # 安装工具包 yum -y install epel-release gcc make tcl # 下载地址 local downloadUrl="http://download.redis.io/releases/redis-$version.tar.gz" if [ -z "$(command -v wget)" ]; then yum -y install wget if [ $? -eq 0 ]; then echo "wget安装完成" else echo "wget安装失败,请检查" exit 1 fi fi if [ ! -d "${installDir}" ]; then mkdir -p "${installDir}" if [ $? -eq 0 ]; then echo "安装目录${installDir}已创建" else echo "请确保您有足够的权限来创建目录,请增加权限后再次执行" exit 1 fi fi if [ ! -f "/tmp/redis-$version.tar.gz" ] ; then wget "$downloadUrl" -P /tmp if [ $? -eq 0 ]; then echo "redis-$version.tar.gz下载成功" else echo "redis-$version.tar.gz下载失败,请重试或手动下载到/tmp目录下再次执行" echo "下载地址:$downloadUrl" exit 1 fi else echo "/tmp/redis-$version.tar.gz文件已存在" fi if [ -d "${installDir}/redis-$version" ]; then echo "${installDir}/redis-$version 已存在,正在删除..." rm -rf "${installDir}/redis-$version" fi tar -zxvf "/tmp/redis-$version.tar.gz" -C "${installDir}" if [ $? -eq 0 ]; then echo "redis-$version.tar.gz解压成功" else echo "redis-$version.tar.gz解压失败,请查看异常信息后重试" exit 1 fi # 编译和安装 cd ${installDir}/redis-$version make && make install sed -i "s|daemonize no|daemonize yes|" "$redisconf_file" sed -i "s|bind 127.0.0.1 -::1|bind 127.0.0.1 -::1\nbind 0.0.0.0|" "$redisconf_file" sed -i "s|# requirepass foobared|# requirepass foobared|" "$redisconf_file" # sed -i "s|port 6379|port 6379|" "$redisconf_file" # sed -i "s|# cluster-enabled yes|cluster-enabled yes|" "$redisconf_file" # sed -i "s|# cluster-config-file nodes-6379.conf|cluster-config-file nodes.conf|" "$redisconf_file" # sed -i "s|# cluster-node-timeout 15000|cluster-node-timeout 5000|" "$redisconf_file" # sed -i "s|appendonly no|appendonly yes|" "$redisconf_file" echo "redis 单机版下载、安装、配置完成" echo "redis安装目录:${installDir}/redis-$version" echo "单机版 进入 redis 交互界面命令:redis-cli -h $(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+') -p 6379" echo "集群版 进入 redis 交互界面命令:redis-cli -h $(ip addr | grep 'inet ' | awk '{print $2}'| tail -n 1 | grep -oP '\d+\.\d+\.\d+\.\d+') -c -p 30001" # mkdir -p "${installDir}/redis-$version/cluster-test" # for cluster_dir in {7000..7005} # do # local create_dir="${installDir}/redis-$version/cluster-test/$cluster_dir" # mkdir -p "$create_dir" # cp "$redisconf_file" "$create_dir" # sed -i "s|port 6379|port $cluster_dir|" "$create_dir/redis.conf" # redis-server "$create_dir/redis.conf" # echo "$cluster_dir 端口的redis启动成功" # done # local dir=${installDir}/redis-$version/utils/create-cluster # sed -i "s|CLUSTER_HOST=127.0.0.1|CLUSTER_HOST=192.168.145.105|" "$dir/create-cluster" # sed -i "s|PROTECTED_MODE=yes|PROTECTED_MODE=no|" "$dir/create-cluster" # $dir/create-cluster start # $dir/create-cluster create } install_redis "$redis_version" "$redis_installDir" exit 0
增加执行权限
chmod a+x /tmp/install_redis.sh
运行当前的bash文件
bash InstallRedis.sh
基本上后端需要这些工具
配置后端项目 Maven项目直接通过 clean 和 package 就可以将项目进行打包
-
先点 clean,之后点package,后端项目就打包完成。之后package完成之后会生成一个target文件,target文件内估计生成一个xxxx.jar文件,这个jar文件就是打包的文件,如果在ide中没有看到这个target文件,可以去项目的本地文件夹中看一下。 将jar文件上传到服务器中
这里可以使用任何带有ftp功能的客户端进行上传,Winscp,Xftp,Xterminal都可以,建议在上传之前创建一个项目文件夹,单独存放文件。
上传之后运行jar文件
java -jar xxx.jar -spring.profiles.active=dev
jar后面的内容可以删除,主要是为了换一个环境进行启动java项目
之后可以输入服务器的网址进行访问,可以一些返回的结果
spring:
datasource:
driver-class-name: com.cj.mysql.jdbc.Driver
url: jdbc:mysql://192.168.198.149:3306/xxx?useSSL=false
username: root
password: xxxxx
redis:
host: 127.0.0.1
port: 6379
# password: 115474287Zxcczld
server:
port: 8080
servlet:
context-path: /api #设置路径前缀与前端一致,默认是/
database: 0
lettuce:
pool:
max-active: 10
max-idle: 10
min-idle: 1
time-between-eviction-runs: 10s
前端配置 nginx安装配置
nginx 配置同样也比较麻烦,我这边写了一个 一键安装的脚本,可以修改内容直接使用
前端项目打包 上传
我们使用npm工具进行打包
npm build
在IDE打包之后会生成一个dist文件夹,将这个文件夹的内容和刚刚的方式一样上传到服务器中,可以和后端项目在同一个父文件夹中
配置 nginx.conf文件
找到nginx.conf文件,进行配置,主要需要配置的是server里面的内容,location的内容,location后面跟的内容是当前dist文件所在的目录,比如当前dist文件在 www下面,那么内容就是 /www/dist
之后重启nginx服务
sudo service nginx restart
或者
sudo systemctl restart nginx
之后在浏览器中输入ip地址之后,就会显示前端的主页内容
注意
如果运行之后显示错误,返回错误页面,403 或者 404 可以去/var/log/nginx 中查看错误文件,是由于什么运行不能运行。
如果你在CentOS操作系统下面运行Nginx服务出现权限方面的问题,有可能是SELinux(Security Enhanced Linux)在起作用。SELinux提供了一种机制来限制进程的权限,以此增强系统的安全性。
临时禁用SElinux
sudo setenforce 0
sudo nano /etc/selinux/config
修改如下内容:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
重新运行
相信这时候已经OK了!
到此这篇关于服务器Centos部署Spring boot 前后端项目的文章就介绍到这了,更多相关Centos部署Spring boot项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!