一:准备环境,
共7台云主机,50M带宽,做nat映射,因为需要联网下安装包和调试,5台centos7.9,分别部署nginx负载均衡,mysql8.0主从,web主从,1台windows测试内网使用情况,nas盘映射到两台web云主机上;
nginx1:192.168.98.141
mysql1:192.168.98.251
mysql2:192.168.98.204
web1:192.168.98.109
web2:192.168.98.85
windows:192.168.98.57
安全组放行并做好网络映射,可以分别远程到各主机
二、部署前工作:5台centos主机都需要进行update更新(需要更新成阿里云的源),以下操作为root用户登录操作
1、更新阿里源并进行更新,关闭系统防火墙
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum -y update
systemctl stop firewalld
systemctl disable firewalld
三、安装数据库(2台数据库安装方式一样),后配置主从
1、安装wget工具
yum -y install wget
2、安装对应依赖
yum install net-tools
yum install -y perl-Module-Install.noarch
3、查询是否安装了mariadb
rpm -qa | grep mariadb
4、如果有内容就需要进行卸载,与mysql冲突
yum -y remove mariadb*
5、创建文件夹并下载mysql安装包
cd /opt
mkdir mysql
cd /opt/mysql
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
<!-- 如果下载缓慢可以直接用迅雷下载好传到对应目录即可,本次提供安装包 -->
tar -xvf mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar
6、安装mysql
rpm -ivh mysql-community-common-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm
7、启动服务&设置开机自启动
systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld
8、查看初始密码
cat /var/log/mysqld.log | grep password
9、登录
mysql -uroot -p
10、更改密码和加密方式,刷新
ALTER USER root@localhost IDENTIFIED BY 'Nihao135@';
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Nihao135@' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
11、进入mysql数据库,允许root远程登录数据库
use mysql;
update user set host = '%' where user = 'root';
exit;
12、重启mysql服务
systemctl restart mysqld
13、配置数据库主从
1)、在主服务器上,修改/etc/my.cnf文件,在最后加上两行
#服务器 id,随意,但要唯一
server-id = 1
#二进制文件存放路径
log-bin = mysql-bin
2)、重启mysql服务
systemctl restart mysqld
mysql -uroot -pNihao135@
use mysql;
<!-- 创建同步用的账号密码并授权 -->
create user slave@'%' identified by 'Nihao135@';
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;
<!-- 查看数据库状态,要记住File和Position的值,后面从服务器配置文件要用 -->
show master status;
3)、在从服务器上修改/etc/my.cnf文件,在最后加上两行
#服务器 id,随意,但要唯一
server-id = 2
<!-- 不要和主服务器id重复 -->
#二进制文件存放路径
log-bin = mysql-bin
4)、重启mysql服务
systemctl restart mysqld
mysql -uroot -pNihao135@
STOP SLAVE;
<!-- 停止同步服务 -->
CHANGE MASTER TO
MASTER_HOST = '192.168.98.251',
MASTER_USER = 'slave',
MASTER_PASSWORD = 'Nihao135@',
MASTER_LOG_FILE = 'mysql-bin.000002',
<!-- 上面主服务器的File值 -->
MASTER_LOG_POS = 2830;
<!-- 上面主服务器的Position值 -->
<!-- 开启同步 -->
start slave;
<!-- 查看状态 -->
show slave status\G;
<!-- 只要看到Slave_IO_Running: Slave_SQL_Running都显示yes就是正常了 ,可以创建数据库看是否可以正常同步了,注意随着长时间运行,mysql的日志也会越来越多,维护时要注意清理-->
四、部署web应用,搭建双入口负载均衡
1、安装httpd和php7.4的环境(软件部署要求7.3以上的环境),两台同样的配置
yum -y install httpd
systemctl enable httpd
systemctl start httpd
<!-- 安装php7.4 -->
yum install epel-release
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --enable remi-php74
yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis
<!-- 查看一下版本是否正常 -->
php -v
systemctl start php-fpm
systemctl enable php-fpm
<!-- 需要修改一下php默认上传的大小限制,改成500m并重启,检测站切片文件都不会超过500m -->
vi /etc/php.ini
upload_max_filesize = 500M
systemctl restart php-fpm
2、部署云盘软件
<!-- 将软件拷贝到/var/www/html下 -->
cd /var/www/html
unzip nextcloud-23.0.3.zip
mv nextcloud/* /var/www/html/
chmod -R 777 /var/www/html/
3、将两台web服务器重启一下,部分场景下可能会出现php不生效的情况,重启即可
浏览器访问192.168.98.109,按照引导填入对应的信息安装即可安装,部分情况下需求修改对应的配置文件,主要是数据库的信息
vi /var/www/html/config/config.php
在最后要添加一行
'check_data_directory_permissions' => false,
最终效果两个config文件连接同一个数据库即可
默认云盘的存储路径是/var/www/html/data,需要挂外NAS存储,例如路径为/opt/bigdata
mkdir /opt/bigdata
mount -t nfs -o vers=3,nolock 10.73.2.37:/d7239770-ba18-4807-96cb-3afc7c6d6ff5 /opt/bigdata
<!-- 上面是大云挂载nas实例的方法,苏研要按照具体方式挂载到对应目录并赋予权限 -->
chmod -R 777 /opt/bigdata
cp /var/www/html/.ocdata /opt/bigdata
<!-- 如果没有一定要拷贝一个.ocdata文件过来,否则会报错的 -->
yum install nfs-utils
vi /etc/fstab
<!-- 在最后一行加上如下,让nas开机后能自动挂载上来 -->
10.73.2.37:/d7239770-ba18-4807-96cb-3afc7c6d6ff5 /opt/bigdata nfs defaults 0 0
五、nginx反向代理负载均衡
yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel gd gd-devel
yum -y install nginx
systemctl start nginx
systemctl enable nginx
vi /etc/nginx/nginx.conf
加入代码块
upstream jdcjcecs {
ip_hash;
server 192.168.98.109 weight=1;
server 192.168.98.85 weight=1;
}
server {
listen 80;
location / {
proxy_pass http://jdcjcecs;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
client_max_body_size 512M;
client_body_timeout 300s;
fastcgi_buffers 64 4K;
}
保存退出后
systemctl reload nginx
systemctl restart nginx