当前位置:   article > 正文

私有云盘:lamp部署nextcloud+高可用集群_nextcloud 高可用

nextcloud 高可用

目录

一、实验准备:

二、配置mariadb主从复制

三台主机下载mariadb

1)主的操作

2)从的操作

3)测试数据是否同步

三、配置nfs让web服务挂载

1、安装

2、配置nfs服务器

3、配置web服务的httpd

   4、测试

四、web 服务器 配置 lamp

1、配置php环境

2、配置访问测试界面

3、修改httpd配置文件

4、访问web页面测试

5、在nfs服务器上配置nextcloud页面

五、配置nginx反向代理&&haproxy&&keepalived

1、安装nginx

2、配置两台nginx 的反向代理

3、为NGINX配置haporxy

4、配置keepalived


一、实验准备:

192.168.150.102 :配置nginx反向代理,haproxy+keepalive提高高可用(主)

192.168.150.103 :配置nginx反向代理,haproxy+keepalived提高高可用(副)

192.168.150.104 :web1 配置lamp平台

192.168.150.105 :web2 配置lamp平台

192.168.150.106 :nfs共享文件服务

192.168.150.107 :mysql-master

192.168.150.108 :mysql-slave1

192.168.150.109 :mysql -slave2

192.168.150.110 :客户端  

所有主机设置防火墙、selinux

本次nextcloud版本22-2.0   、php74

二、配置mariadb主从复制

192.168.1.7     主

192.168.1.8     从

192.168.1.9   从

三台主机下载mariadb
yum -y install mariadb-server
1)主的操作
  1. vim /etc/my.cnf
  2. server-id=1
  3. log-bin=mysql-bin
  4. log-slave-updates=ture
  5. character-set-server=utf8
  6. binlog-format = mixed

  1. systemctl start mariadb
  2. netstat -anput |grep 3306

  1. 初始化数据库
  2. mysql_secure_installation
  3. 创建hy用户
  4. grant replication slave on *.* to 'hy'@'192.168.150.%' identified by '123456';(用于远程登录数据库)
  5. show master status;

2)从的操作
  1. 2)从的操作
  2. [mysqld]
  3. datadir=/var/lib/mysql
  4. socket=/var/lib/mysql/mysql.sock
  5. server-id=2 #另一个从改为3
  6. relay-log=relay-log-bin
  7. relay-log-index=slave-relay-bin.index
  8. character-set-server=utf8
  9. binlog-format = mixed
  10. 重置数据库
  11. systemctl start mariadb
  12. mysql_secure_installation
  13. mysql -u root -p"123.com"
  14. 设置授权
  15. stop slave;
  16. CHANGE MASTER TO MASTER_HOST='192.168.150.107',MASTER_USER='hy',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=1484;
  17. start slave;
  18. show slave status\G;

3)测试数据是否同步
  1. 在主上为nextcloud创建库,并创建用于登录的用户
  2. create database nextcloud;
  3. grant all on nextcloud.* to "nextcloud"@"192.168.150.%" identfied by "123456"
  4. select user,host,password from mysql.user;

在从上验证是否同步,以及用户nextcloud是否可以远程登录

验证用户nextcloud

mysql -unextcloud -p"123456" -h 192.168.150.107 -P 3306

三、配置nfs让web服务挂载

192.168.150.6   nfs服务器

192.168.150.5    web服务器

192.168.150.4   web服务器

1、安装
  1. 安装yum -y install rpcbind 、yum -y install nfs-utils
  2. 先启动nfs,在启动rpcbind(如果操作过程中报错,把这两个服务停掉,然后按照顺序启动)
2、配置nfs服务器
  1. mkdir /share ##创建共享目录
  2. vim /etc/exports
  3. /share 192.168.150.0/24(rw,sync,no_root_squash)
  4. 启动
  5. systemctl enable --now nfs
  6. systemctl enable --now rpcbind
  7. 查看可用的共享目录
  8. exportfs
  9. showmount -e

3、配置web服务的httpd
  1. yum -y install httpd
  2. systemctl enable --now httpd
  3. 挂载共享目录
  4. yum -y install nfs-utils
  5. yum -y install rpcbind
  6. systemctl enable --now nfs
  7. showmount -e 192.168.150.106
  8. mount 192.168.150.106:/share /var/www/html/

   4、测试

来到nfs服务器配置网页

echo this is a test > /share/index.html

访问

四、web 服务器 配置 lamp

192.168.1.4    web服务器

192.168.1.5    web服务器

1、配置php环境
  1. yum install epel-release -y
  2. yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
  3. yum install yum-utils -y
  4. yum-config-manager --enable remi-php74
  5. yum -y install php php-xml php-gd php-mbstring php-process php-ldap php-xml php-zip  php-mysql php-intl

php -v #查看版本

2、配置访问测试界面
  1. vim index.html
  2. mv index.html index.php
  3. cat index.php

3、修改httpd配置文件
  1. vim /etc/httpd/conf/httpd.conf
  2. <Directory "/var/www/html/nextcloud">
  3. Require all granted
  4. AllowOverride All
  5. Options FollowSymLinks MultiViews
  6. <IfModule mod_dav.c>
  7. Dav off
  8. </IfModule>
  9. </Directory>

4、访问web页面测试

此时的php环境没什么问题了

5、在nfs服务器上配置nextcloud页面

下载(比较慢)

  1. wget https://download.nextcloud.com/server/releases/nextcloud-22.2.0.zip
  2. yum -y install unzip

  1. unzip nextcloud-22.2.0.zip
  2. cp nextcloud /share/ -R
  3. useradd -s /sbin/nologin -M apache
  4. chown apache.apache /share
  5. chmod 777 /share

回到web服务器修改默认的访问页面

  1. vim /etc/httpd/conf/httpd.conf
  2. DocumentRoot "/var/www/html/nextcloud"

重启

systemctl restart httpd

访问http://192.168.150.104  和  http://192.168.150.105

192.168.150.104报错

解决办法vim /var/www/html/nextcloud/config/config.php

解决现在2个web服务器都可以登录了

五、配置nginx反向代理&&haproxy&&keepalived

192.168.150.102

192.168.150.103

1、安装nginx
  1. yum -y install epel-release.noarch
  2. yum -y install nginx
  3. systemctl enable --now nginx
2、配置两台nginx 的反向代理
  1. vim /etc/nginx/nginx.conf
  2. 在http字段下插入
  3. upstream nextcloud {
  4. ip_hash;
  5. server 192.168.150.104:80;
  6. server 192.168.150.105:80;
  7. }
  8. server {
  9. listen 80;
  10. server_name nextcloud1;
  11. location / {
  12. proxy_pass http://192.168.150.104;
  13. }
  14. }
  15. server {
  16. listen 80;
  17. server_name nextcloud2;
  18. location / {
  19. proxy_pass http://192.168.150.105;
  20. }
  21. }

检查配置文件

nginx -t

重载配置文件

systemctl reload nginx

访问测试192.168.150.102

访问测试192.168.150.103

3、为NGINX配置haporxy

1)安装

  1. ##下载HAproxy
  2. wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz
  3. ##解压
  4. tar -xf haproxy-1.7.2.tar.gz
  5. ##进入目录
  6. cd haproxy-1.7.2/
  7. ##编译(没有gcc请先安装)
  8. make PREFIX=/usr/local/haproxy TARGET=linux2628
  9. make install PREFIX=/usr/local/haproxy

2)配置haproxy

  1. 从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg”
  2. mkdir /etc/haproxy
  3. touch /etc/haproxy/haproxy.cfg
  4. vim /etc/haproxy/haproxy.cfg
  5. ##插入
  6. global #全局属性
  7. daemon #以daemon方式在后台运行
  8. maxconn 256 #最大同时256连接
  9. pidfile /home/ha/haproxy/conf/haproxy.pid #指定保存HAProxy进程号的文件
  10. defaults #默认参数
  11. mode http #http模式
  12. timeout connect 5000ms #连接server端超时5s
  13. timeout client 50000ms #客户端响应超时50s
  14. timeout server 50000ms #server端响应超时50s
  15. frontend http-in #前端服务http-in
  16. bind *:88 #监听88端口(不修改会与nginx冲突)
  17. default_backend Nginxservers #请求转发至名为"servers"的后端服务
  18. backend Nginxservers #后端服务servers
  19. server server1 192.168.150.102:80 maxconn 32 #backend servers中只有一个后端服务,名字叫server1,起在本机的80端口,HAProxy同时最多向这个服务发起32个连接
  20. server server2 192.168.150.103:80 maxconn 32 #backend servers中只有一个后端服务,名字叫server2,起在本机的80端口,HAProxy同时最多向这个服务发起32个连接

将haproxy添加为系统服务

  1. cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy
  2. vim /etc/init.d/haproxy
  3. 修改: 35行 内容为 BIN=/usr/local/haproxy/sbin/$BASENAME
  4. chmod +x /etc/init.d/haproxy
  5. chkconfig --add /etc/init.d/haproxy
  6. ##添加35运行级别下自启动
  7. chkconfig haproxy --level 35 on
  8. chkconfig --list
  9. service haproxy start

验证haproxy

4、配置keepalived

192.168.150.102(主)

192.168.150.103 (副)

  1. ##安装keepalived
  2. yum -y install keepalived
  3. ##加载查看模块
  4. modprobe ip_vs
  5. lsmod |grep ip_vs
  6. ###配置
  7. vim /etc/keepalived/keepalived.conf
  8. ##插入
  9. global_defs {
  10. router_id LVS_DEVEL
  11. }
  12. #HAProxy健康检查配置
  13. vrrp_script chk_haproxy {
  14. script "killall -0 haproxy" #使用killall -0检查haproxy实例是否存在,性能高于ps命令
  15. interval 2 #脚本运行周期
  16. weight 2 #每次检查的加权权重值
  17. }
  18. vrrp_instance HA_1 {
  19. state MASTER #副的写SLAVE
  20. interface ens160
  21. virtual_router_id 51
  22. priority 100 #从的到比100
  23. advert_int 1
  24. authentication {
  25. auth_type PASS
  26. auth_pass 1111
  27. }
  28. virtual_ipaddress {
  29. 192.168.150.200
  30. }
  31. track_script {
  32. chk_haproxy #对应的健康检查配置
  33. }
  34. }

启动keepalived+haproxy

  1. systemctl restart keepalived.service
  2. service haproxy restart

查看主的ip

查看从的ip

浏览器访问192.168.150.200

验证:宕掉192.168.150.102观察192.168.150.103的VIP

继续访问192.168.150.200        

配置完成,实验结束(nfs换成ceph存储会更好些)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/416272
推荐阅读
相关标签
  

闽ICP备14008679号