记录一次(前后端分离)部署vue + springCloud 项目的经验和遇到的坑

公司给了我四台服务器,需要搭建的有前端,后端,以及两台数据库做主从复制。
一、搭建主从数据库:
准备mysql-5.7.27-linux-glibc2.12-x86_64.tar包,官网下载地址mysql安装包下载地址,选择社区版下载
下载之后上传至两台数据库xxxx.xx.xx.55,xxxx.xx.xx.56 ,我习惯将其解压至 /usr/local/mysql/
进入到该目录下 ,解压命令:
step.1

tar -xzvf mysql-5.7.27-linux-glibc2.12-x86_64.tar

step.2

#对其重命名
mv  mysql-5.7.27-linux-glibc2.12-x86_64  mysql-5.7.27

step.3

#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql

step.4

#在/usr/local/mysql/mysql-5.7.27/目录下新建data目录,方便存放数据库文件
mkdir data

step.5

#对其授权
	chown -R mysql:mysql ./
#初始化数据库
	./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/mysql-5.7.27/ --datadir=/usr/local/mysql/mysql-5.7.27/data/
#将mysql/目录下除了data/目录的所有文件,改回root用户所有
	chown -R root .
#mysql用户只需作为mysql-5.7.27/data/目录下所有文件的所有者
	chown -R 
#复制启动文件
	cp support-files/mysql.server /etc/init.d/mysqld 
	chmod 755 /etc/init.d/mysqld
	cp /usr/local/mysql/mysql-5.7.27/bin/my_print_defaults /usr/bin/

step.6

#修改启动脚本
[root@instance_4dbde0 mysql-5.7.20]# vi /etc/init.d/mysqld
#修改项:
basedir=/usr/local/mysql/mysql-5.7.27/
datadir=/usr/local/mysql/mysql-5.7.27/data
port=3306
#启动服务
[root@instance_4dbde0 mysql-5.7.20]# service mysqld start
#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
[root@instance_4dbde0 mysql-5.7.20]# vi /etc/profile
#添加mysql路径
export PATH=$PATH:/usr/local/mysql/mysql-5.7.27/bin
#刷新立即生效
[root@instance_4dbde0 mysql-5.7.20]# source /etc/profile

配置以上信息之后,基本就可以启动了mysql(如果不能启动,请看最后的配置文件),但是现在还缺少mysql的配置文件,即my.cnf文件(没有它Mysql也可以使用内置的默认参数启动),最后说
接下来就可以使用命令登录mysql了
数据库初始密码可以用命令查看:

cat /root/.mysql_secret

下面贴出我的my.cnf文件模板,可以按照如下配置:

[mysqld]
log-bin=master-bin
server-id=1
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

mysql安装完 然后进行主从搭建:
55为主,56为从
进入mysql:

第一步:
            在xxx.xx.xx.55中创建一个xxx.xx.xx.56主机中可以登录的MySQL用户
            用户:mysql12
            密码:mysql12
      		mysql>GRANT REPLICATION SLAVE ON *.*  TO 'mysql12'@'xxx.xx.xx.55' IDENTIFIED BY 'mysql12';
            mysql>FLUSH PRIVILEGES;
第二步:
            查看xxx.xx.xx.55服务器二进制文件名与位置
            mysql>SHOW MASTER STATUS;

第三步:
            告知二进制文件名与位置
            在xxx.xx.xx.56中执行:
            mysql>CHANGE MASTER TO
                     >MASTER_HOST=’xxx.xx.xx.55’,
                     >MASTER_USER=’mysql12’,
                     >MASTER_PASSWORD=’mysql12’,
                     >MASTER_LOG_FILE=’mysql-bin.000048’,
                     >MASTER_LOG_POS=432;
#开启复制
mysql>START SLAVE;  
#查看主从复制是否成功
mysql>SHOW SLAVE STATUS\G

在这里插入图片描述
完成主从配置。

二、搭建前端服务器
前端VUE 需要用到ngnix,首先安装配置ngnix 可以自己在官网下载 也可以直接到服务器上用命令下载:

1.#在自己的目录下,我这里是/usr/local/
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
2.#安装gcc ,源码编译需要用到
yum install gcc-c++
3.#Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码
yum install -y pcre pcre-devel
4.#zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
5.#nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
6.#将压缩包进行解压
tar -zxvf nginx-1.10.1.tar.gz

然后进入解压后的目录ngnix下,有个configure可执行文件,使用默认配置,回车即可:

./configure

最后进行编译和安装:

make (编译)
make install (安装)

遇到问题:make: *** No rule to make target build', needed bydefault’. Stop.
解决办法:
安装下面配置
yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel
再重新执行make && make install 即可

然后你会发现多了一个ngnix文件夹,
在这里插入图片描述

进入此文件夹的sbin文件夹中,启动ngnix
在这里插入图片描述


./ngnix   
#重启命令
./nginx -s reload

此外进入ngnix.cnf可以修改配置文件:
在这里插入图片描述

vim ngnix.cnf

在这里插入图片描述
我这里只修改了监听端口:80
以及location / {
root /usr/local/income; #这个路径下存放的是vue打包之后的文件(static文件夹以及index.html)
}

VUE打包之后会存放在dist目录下
在这里插入图片描述

#vue打包命令
npm run build

至此前端配置完成。

三、配置后端
后端需要一个consul注册中心和运行jar包,一个jre运行环境即可,配置一个java环境,将jdk的包上传至服务器,然后进行解压到/usr/local/目录下
在配置文件中加入环境变量,

vim /etc/profile
#随后在profile文件的末尾添加如下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#注:export JAVA_HOME后接jdk1.8的安装路径。

下载consul的linux版本然后进行解压即可

#解压zip文件命令
unzip consul-xx.xx.01.zip
#运行命令(后台挂起并输出日志到consul.log文件下):
nohup ./consul agent -dev >>consul.log &

在/usr/local/下创建一个jar目录 存放后端的jar包,将springcloud需要运行的包上传至该目录下,进行运行:

nohup java -jar xxx.jar >>xxx.log &

至此项目搭建上线完毕。
遇到问题:
1.数据库需要关闭防火墙,以及授权使我们在外部使用Nivacat等工具能够连接,方便使用,需要进行如下命令:

#关闭防火墙(Centos7 关闭防火墙使用的命令)
systemctl stop firewalld (临时关闭)
systemctl disable firewalld (禁止开机启动)
#授权(进入数据库执行)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

2.前后端启动之后无法连接数据库,是因为防火墙没有开发项目所用到的端口号,我项目中用到了8000,8001,8500,所有需要配置端口,如下命令:

cd /etc/firewireld/zones/
vim public.xml

在这里插入图片描述
修改配置后重启端口:

firewireld-cmd --reload
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值