搭建一套LVS-DR模型的高性能集群

搭建一套LVS-DR模型的高性能集群,第1张

搭建一套LVS-DR模型的高性能集群(LVS-DR+Nginx+Mariadb+Nfs+php-fpm+wordpress) 架构简介

参加Marcolinux培训一周了,感觉每天都在进步。现在来说说这个架构,这也是第一周建筑师作业的第二题。搭建了一个高性能集群的LVS-DR模型,两天后终于完成并实现了这个架构。我设计的架构图如下:


该架构主要使用ipvsadm实现高性能集群,真实服务器(rs1、RS2)安装配置nginx,RS服务器分别配置内网和外网。正常情况下,客户端的web请求发送到lvs服务器(vip),lvs服务器根据ipvsadm定义的规则将请求加载到后端RS服务器。RS服务器的nginx直接在本地检索并返回静态资源请求,对于php的动态请求,充当PHP-FPM服务器的反向代理。如果有涉及MYSQL的请求,PHP-FPM服务器会自动用mariadb服务器处理数据。服务器NFS安装在RS1、RS2和PHP-FPM服务器上。实现数据同步的功能。

架构要求

1.WordPress程序通过nfs与每个realserver共享。

2.后端realserver中nginx和php的分离

环境说明

LVS服务器

  • 1:192.168.31.21网卡

  • 配置ipvsadmin工具

    RS1-服务器

  • 1:192.168.31.22网卡(外部网络)

  • 网卡2:192.168.68.22(内部网)

    配置nginx服务、NFS服务、

    RS2-服务器

  • 1:192.168.31.23网卡(外部网络)

  • 网卡2:192.168.68.23(内部网)

    配置nginx

    NFS服务器

  • 1:192.168.68.24网卡(内部网)

  • 配置nfs,

    PHP-FPM-服务器

  • 1:192.168.68.25网卡(内部网)

  • 配置php-fpm,nfs

    MARIADB-server

  • 1:192.168.68.26网卡(内部网)

  • 配置mariadb

    所有系统都是Centos7。

    贵宾:192.168.31.2

    进行本地分析的窗口192.168.31.2z.com

    软件安装

    LVS服务器

    [root@lvs-server ~]# yum -y install ipvsadm

    RS1-服务器

    [root@rs1-server ~]# yum -y install nginx nfs-utils rpcbind

    RS2-服务器

    [root@rs2-server ~]# yum -y install nginx nfs-utils rpcbind

    NFS服务器

    [root@nfs-server ~]# yum -y install nfs-utils rpcbind

    PHP-fpm服务器

    [root@phpfpm-server ~]# yum -y install php-fpm php-mysql php-gd php-mbstring php-mcrypt [root@phpfpm-server ~]# yum -y nfs-utils rpcbind

    Mariadb-服务器

    [root@mariadb-server ~]# yum -y install nfs-utils rpcbind 服务配置

    NFS文件共享

    [root@nfs-server ~]#groupadd www -g 501 [root@nfs-server ~]#useradd www -u 501 -g www -M -r     [root@nfs-server ~]#mkdirp -pv /data/wwwroot [root@nfs-server ~]#chown -R www:www /data/wwwroot [root@nfs-server ~]#echo '/data/wwwroot   192.168.68.0/24(rw,sync,all_squash,anongid=501,anonuid=501)' > /etc/exports [root@nfs-server ~]#exportfs -rv [root@nfs-server ~]#systemctl start rpcbind.service #启动rpcbind,nfs注册工具 [root@nfs-server ~]#systemctl start nfs.service   #启动nfs [root@nfs-server ~]#mkdir -pv /data/wwwroot/z_com

    LVS构型

    [root@lvs-server ~]# ifconfig eno16777736:0 192.168.32.2 netmask 255.255.255.0 broadcast 192.168.31.2 [root@lvs-server ~]# route add -host 192.168.31.2 dev eno16777736:0 [root@lvs-server ~]# ipvsadm -A -t 192.168.31.2:80 -s rr [root@lvs-server ~]# ipvsadm -a -t 192.168.31.2:80 -r 192.168.31.22 -g [root@lvs-server ~]# ipvsadm -a -t 192.168.31.2:80 -r 192.168.31.23 -g [root@lvs-server ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  192.168.31.2:80 rr   -> 192.168.31.22:80             Route   1      0          0            -> 192.168.31.23:80             Route   1      0          0

    RS1和RS2具有相同的配置。

    [root@rs1-server ~]#vim skp.sh  #LVS-DR配置 #!/bin/bash VIP=192.168.31.2 case "$1" in   start)    echo "配置lvs Real Server开始..."    ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up    route add -host $VIP dev lo:0    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce    ;;   stop)    echo "正在关闭lvs Real server"    ifconfig lo:0 down    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce    ;;   *)    echo "用法:$0 {start|stop}"    exit 1 esac [root@rs1-server ~]#chmod +x skp.sh [root@rs1-server ~]#./skp.sh start [root@rs1-server ~]#groupadd www -g 501 [root@rs1-server ~]#useradd www -u 501 -g www -M -r   [root@rs1-server ~]# ifconfig lo:0 192.168.32.2 netmask 255.255.255.255 broadcast 192.168.31.2 [root@rs1-server ~]# route add -host 192.168.31.2 dev lo:0 [root@rs1-server ~]#systemctl start rpcbind.service [root@rs1-server ~]#showmount -e 192.168.68.24 Export list for 192.168.68.24: /data/wwwroot 192.168.68.0/24 [root@rs1-server ~]#mkdir -p /htdocs [root@rs1-server ~]#mount -t nfs 192.168.68.24:/data/wwwroot /htdocs [root@rs1-server ~]# df -h Filesystem                    Size  Used Avail Use% Mounted on /dev/sda2                      58G  2.3G   56G   4% / devtmpfs                      484M     0  484M   0% /dev tmpfs                         493M     0  493M   0% /dev/shm tmpfs                         493M  6.8M  487M   2% /run tmpfs                         493M     0  493M   0% /sys/fs/cgroup /dev/sda1                     497M  118M  379M  24% /boot tmpfs                          99M     0   99M   0% /run/user/0 192.168.68.24:/data/wwwroot   58G  2.3G   56G   4% /htdocs [root@rs1-server ~]#vim /etc/nginx/conf.d/z.com.conf server {     listen          80;     server_name     z.com;     root            /htdocs/z_com;     index           index.php;     add_header X-via $server_addr;     location / {             root    /htdocs/z_com;             index   index.php index.html index.html;     }     location ~* \.(jpg|jpeg|png|gif|js|css)$ {             root    /htdocs/z_com;     }     location ~ \.php$ {             root            /htdocs/z_com;             fastcgi_pass    192.168.68.25:9000;             fastcgi_index   index.php;             fastcgi_param   SCRIPT_FILENAME /htdocs/z_com$fastcgi_script_name;             include         fastcgi_params;     } } [root@rs1-server ~]#systemctl start nginx.service

    PHP-FPM配置

    [root@phpfpm-server ~]#groupadd www -g 501 [root@phpfpm-server ~]#useradd www -u 501 -g www -M -r  [root@phpfpm-server ~]#systemctl start rpcbind.service [root@phpfpm-server ~]#showmount -e 192.168.68.24 Export list for 192.168.68.24: /data/wwwroot 192.168.68.0/24 [root@phpfpm-server ~]#mkdir -p /htdocs [root@phpfpm-server ~]#mount -t nfs 192.168.68.24:/data/wwwroot /htdocs [root@phpfpm-server ~]# df -h Filesystem                    Size  Used Avail Use% Mounted on /dev/sda2                      58G  2.3G   56G   4% / devtmpfs                      484M     0  484M   0% /dev tmpfs                         493M     0  493M   0% /dev/shm tmpfs                         493M  6.8M  487M   2% /run tmpfs                         493M     0  493M   0% /sys/fs/cgroup /dev/sda1                     497M  118M  379M  24% /boot tmpfs                          99M     0   99M   0% /run/user/0 192.168.68.24:/data/wwwroot   58G  2.3G   56G   4% /htdocs [root@phpfpm-server ~]#vim /etc/php-fpm.d/www.conf   ##修改/etc/php-fpm.d/www.conf的部分选项 listen = 192.168.68.22:9000 listen.allowed_clients = 192.168.68.22,192.168.68.23 user = www group = www [root@phpfpm-server ~]#systemctl start php-fpm.service

    Mariadb数据库配置

    [root@mariadb-server ~]#systemctl start mariadb.service [root@mariadb-server ~]#mysql -uroot  MariaDB [(none)]> create database wordpress;  #创建wordpress数据库 MariaDB [(none)]> grant all on wordpress.* to 'wordpress'@'192.168.68.%' identified by '123456'; 授权worpress用户 搭建wordpress [root@nfs-server ~]#cd /data/wwwroot/z_com uzip wordpress.zip

    使用浏览器访问z.com:

    试验总结
  • 注意php-fpm服务配置中的listen和listen.allowed_clients。

  • 设置web服务时,注意网站根目录的权限。

    这种架构可以通过一键配置来完成...它将在未来实施。

    欢迎分享,转载请注明来源:内存溢出

    原文地址:https://www.54852.com/zz/778094.html

    (0)
    打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
    上一篇 2022-05-03
    下一篇2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

      保存