目录
一,环境准备
1.1.安装MySQL
将MySQL的安装包上传至服务器

查看系统中是否存在mariadb,如果存在则安装mysql时会有冲突,需要先卸载mariadb
bash
# 查看是系统中是否存在mariadb
rpm -qa|grep mariadb

bash
# 卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

执行完卸载命令后再次查看mariadb是否被删除显示什么都没有表示已经卸载

创建mysql用户及用户组
bash
#创建用户组
groupadd mysql
#创建用户
useradd mysql -g mysql
解压刚开始传入服务器的MySQL压缩包
bash
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

开始安装
bash
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
// 安装之前,请先检查是否安装libaio,如果未安装请先安装之后再装server源
rpm -qa|grep libaio
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm

bash
# 初始化数据库
mysqld --initialize

更改目录及权限
bash
# 更改mysql数据库目录的所属用户及用户组
chown mysql:mysql /var/lib/mysql -R
# mysql目录授权
cd /var/lib
chmod -R 777 mysql

初始化数据库及启动
bash
# 启动数据库服务
systemctl start mysqld

查看MySQL的启动状态

启动成功后修改mysql的登录密码
sql
-- 查看安装时生成的随机密码
grep 'password' /var/log/mysqld.log

使用随机密码登录
sql
-- 登录数据的代码
mysql -u root -p

重置密码
sql
set password = password('新密码');

授权外网登录权限
sql
grant all privileges on *.* to root@'%' identified by 'mysql.com';

刷新权限
sql
flush privileges;
退出
sql
exit
将MySQL端口号3306加入到防火墙规则
bash
# 配置防火墙规则
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 刷新防火墙规则
firewall-cmd --reload
# 关闭防火墙,不建议使用
systemctl stop firewalld.service
systemctl disable firewalld.service

用主机上的数据库管理软件测试一下

1.2.安装JDK
bash
# 在/usr/local下创建java目录
mkdir /usr/local/java

将JDK安装包上传至服务器

将JDK解压到/usr/local/java目录
bash
tar -zxf jdk-8u151-linux-x64.tar.gz -C /usr/local/java

配置环境变量
bash
vim /etc/profile
在配置文件中加入JAVA环境变量
bash
export JAVA_HOME=JDK解压路径
export PATH=$PATH:${JAVA_HOME}/bin

保存并退出,让新设置的环境变量生效
bash
source /etc/profile

检查JAVA安装是否成功
bash
java -version

1.3.安装TomCat
将TomCat的安装包上传至服务器

将TomCat解压到/opt下
bash
tar -zxf apache-tomcat-8.5.20.tar.gz -C /opt

配置环境变量
bash
vim /etc/profile
# 加入TOMCAT_HOME环境变量
export TOMCAT_HOME=Tomcat解压路径

启动tomcat
来到安装的tomcat的bin目录,执行如下命令
bash
./startup.sh

tomcat启动后并不能立即访问,原因是8080端口被防火墙阻止了,
可以关闭防火墙(不建议),或将8080端口配置到防火墙中。
bash
# 将8080端口加入到防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# reload防火墙规则
firewall-cmd --reload

修改防火墙之后,访问http://192.168.11.137:8080/,如果看到tomcat的管理页面,则说明成功。

创建启动脚本
将tomcat目录下bin中的catalina.sh拷贝到/etc/init.d下,重命名为tomcat,为所有用户增加可执行权限
bash
# 将catalina.sh拷贝到init.d目录下
cp /opt/apache-tomcat-8.5.20/bin/catalina.sh /etc/init.d
# 在init.d目录下为catalina.sh重命名
mv catalina.sh tomcat
# 为所有用户赋可执行权限
chmod a+x tomcat
# 编辑tomcat
vim /etc/init.d/tomcat
# 进入编辑界面,加入如下内容,注意根据自己的环境配置
#!/bin/sh
JAVA_HOME=/usr/local/java/jdk1.8.0_151
CATALINA_HOME=/opt/apache-tomcat-8.5.20
#测试启动脚本
service tomcat status # 查看服务状态,q键退出
service tomcat start # 启动服务
service tomcat restart # 重启服务
service tomcat stop # 停止服务
service --status-all # 查看服务列表 q键退出

配置TomCat随服务器自动启动
bash
# 编辑/etc/init.d/tomcat
vim /etc/init.d/tomcat
# 加入如下注释,注意是注释,#
#chkconfig: 23456 10 90
#description: tomcat service

使用chkconfig --add命令添加服务
bash
chkconfig --add tomcat
完成后即可开机自启
安装第如果需要安装多台TomCat可以照如上操作,如果是安装台同一台服务器上则需要更改TomCat的配置文件
进入TomCat安装目录下面的conf目录
bash
cd /opt/apache-tomcat-8.5.20/conf
编辑server.xml
bash
vim server.xml
找到8005,8080,8009这三个端口号将其改成与第一台或其他的TomCat不一样即可
1.4.安装Nginx
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装
bash
yum install gcc-c++
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库
bash
yum install -y pcre pcre-devel
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库
bash
yum install -y zlib zlib-devel
OpenSSL 套接字层密码库,有主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库
bash
yum install -y openssl openssl-devel
wget下载Nginx
bash
wget -c https://nginx.org/download/nginx-1.18.0.tar.gz
解压
bash
tar -zxvf nginx-1.18.0.tar.gz
进入到Nginx的安装目录
bash
cd nginx-1.18.0
配置安装
bash
# 使用默认配置,命令在nginx目录中执行,执行完成会产生MakeFile等文件
./configure
# 编译并安装
make && make install
启动与停止
bash
# 到命令所在目录
cd /usr/local/nginx/sbin/
# 启动
./nginx
# 停止,强制直接关停
./nginx -s stop
# 等待nginx进程处理完任务再停止
./nginx -s quit
# 重新加载配置文件
./nginx -s reload
配置Nginx自动启动
bash
vim /etc/rc.d/rc.local

bash
/usr/local/nginx/sbin/nginx
修改/etc/rc.d/rc.local的权限
bash
chmod 755 /etc/rc.d/rc.local
二,部署
2.1.后台服务部署
在部署前请先将后台服务的数据库连接修改为已安装配置好的mysq服务器的ip地址

之后将war包上传至tomcat的webapps目录下即可
2.2.Nginx配置负载均衡及静态资源部署
修改前端程序
注:
在部署前端程序时,需要先修改后台server的ip地址配置。

之后将前台程序打包
bash
npm run build
将打包好的前端程序上传到Nginx服务器的html目录

nginx.conf配置
bash
vim /usr/local/nginx/conf/nginx.conf

重新加载配置文件
bash
[root@localhost sbin]# pwd
/usr/local/nginx/sbin
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -s reload
之后就可以通过nginx的地址访问部署好的项目了