搭建LVS_nat,负载均衡两个wordpress应用


实验环境: 主机A: 作为调度器 安装ipvsadm,开启核心转发 主机B: 作为RS1,提供wordpress服务,并连接后端数据库服务器获取数据。 安装httpd,php,php-mysql,wordpress 配置默认网关为DIP。 主机C: 作为RS2,提供wordpress服务,并连接后端数据库服务器获取数据。 安装httpd,php,php-mysql,wordpress 配置默认网关为DIP。 主机D: 作为数据库服务器,提供mariadb服务,以及NFS服务。 安装mariadb-server,nfs-server   事前准备
时间服务器设置 主机A:作为内部的时间服务器 安装chrony 编辑配置文件 vim /etc/chrony.conf allow 192.168.60.0/24        #允许本地网络的主机过来同步时间 保存配置文件并重启服务 查看时间同步状态 chronyc sources -V 与远程服务器已经同步成功了。 MS Name/IP address         Stratum Poll Reach LastRx Last sample ^* ntp5.flashdance.cx            2   6     7     1   -110us[-7518us] +/-  180ms 主机B,C,D:作为时间同步客户端,向服务器同步时间 安装chrony 编辑配置文件 vim /etc/chrony.conf 禁用其他时间服务器,只添加129主机作为时间服务器。 #server 0.rhel.pool.ntp.org iburst #server 1.rhel.pool.ntp.org iburst #server 2.rhel.pool.ntp.org iburst #server 3.rhel.pool.ntp.org iburst server 192.168.60.129 iburst 重启服务 查看时间同步状态 chronyc sources -V 可见已经同步成功了。 MS Name/IP address         Stratum Poll Reach LastRx Last sample =============================================================================== ^* www.ilinux.io                 3   6   373    41   -374us[  -19ms] +/-  198ms  
准备MariaDB服务器 主机D 安装Mariadb-server 安装maria_db yum install -y mariadb-server 编辑mysql配置文件 vim /etc/my.cnf.d/server.cnf [mysqld] skip_name_resolve=ON innodb_file_per_table=ON log_bin=mysql-bin 启动mariadb服务 systemctl start mariadb.service 登陆mysql服务端 mysql -uroot -p123456 创建用户 GRANT ALL ON wordpress.* TO wpuser@'192.168.%.%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; 登陆 mysql -uwpuser -p123456 -h192.168.60.138 创建数据库 CREATE DATABASE wordpress; 重启mariadb服务。 systemctl restart mariadb.service 准备NFS文件服务器 主机D 安装NFS服务器程序 yum install -y nfs-utils 新建wpuser系统用户 useradd wpuser id wpuser uid=1000(wpuser) gid=1000(wpuser) groups=1000(wpuser) 新建共享的文件夹 mkdir /data/web/wp_photo 修改wp_photo文件夹的属主属组为apache用户 chown 48.48 /data/web/wp_photo -R 由于此文件夹用作httpd服务器的挂载目录,因此当httpd服务进程作为apache写入文件时,应该拥有此挂载目录的写权限。 修改配置文件 vim /etc/exports /data/web/wp_photos 192.168.60.0/24(rw,anonuid=48,anongid=48) #意思是允许本地局域网的主机访问此文件夹。 #并且映射为用户apache 开启nfs服务 systemctl start nfs.service 查看当前已导出的文件夹信息 #exportfs -v /data/web/wp_photos         192.168.60.0/24(sync,wdelay,hide,no_subtree_check,anonuid=1000,anongid=1000,sec=sys,rw,secure,root_squash,no_all_squash)   ###其他客户端挂载此文件夹#### 挂载NFS文件系统 安装nfs客户端 yum install -y nfs-utils 运行挂载命令 mount -t nfs -rw 192.168.60.138:/data/web/wp_photo /web/host/wp_photo/ 查看挂载信息 192.168.60.138:/data/web/www/blog on /data/web/www type nfs (rw,vers=4,addr=192.168.60.138,clientaddr=192.168.60.132)      
准备httpd服务器(基于php-module方式实现) 主机B yum install -y httpd httpd-tools yum install -y php php-mysql 配置httpd 编辑主配置文件 vim /etc/httpd/conf/httpd.conf 禁用DocumentRoot选项 #DocumentRoot "/var/www/html" 启用NameVirtualHost选项,使用默认80端口 # Use name-based virtual hosting. # NameVirtualHost *:80 编辑虚拟主机的配置文件 vim /etc/httpd/conf.d/blog.conf         ServerName 192.168.60.132         DocumentRoot "/data/web/www"                          Options None                 AllowOverride None                 Order allow,deny                 Allow from all                  CustomLog "logs/www1/access_log" combined         ErrorLog "logs/www1/error_log"         LogLevel info                          SetHandler server-status                 AuthType basic                 AuthName "Admin area,plz enter username and password."                 AuthUserFIle "/etc/httpd/conf.d/.htpasswd"                 Require user tom jack          ExtendedStatus On 编辑测试页 vim /data/web/www/index.html 重启httpd服务 service httpd start   主机C ##配置过程同上##       设置主机B,C的网关为129主机   重启网络服务 systemctl restart network  
准备调度器 主机A 测试能否访问各个RS curl http://192.168.60.132/index.html curl http://192.168.60.137/index.html 安装ipvsadm 打开核心转发 sysctl -w net.ipv4.ip_forward=1 ~]# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1   VIP地址为:10.0.71.116       #模拟成公网地址。 DIP:192.168.60.129 配置规则 ipvsadm -A -t 10.0.71.116:80 -s rr ipvsadm -a -t 10.0.71.116:80 -r 192.168.60.132 -m  ipvsadm -a -t 10.0.71.116:80 -r 192.168.60.137 -m  ipvsadm -Ln [root@129 ~]# ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  10.0.71.116:80 rr   -> 192.168.60.132:80            Masq    1      0          0            -> 192.168.60.137:80            Masq    1      0          0      使用客户端测试访问: curl http://10.0.71.116/index.html for %i in (1,2,3,4,5,6,7,8,9,10) do curl http://10.0.71.116/index.html -> RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  10.0.71.116:80 rr   -> 192.168.60.132:80            Masq    1      0          32           -> 192.168.60.137:80            Masq    1      0          32

部署wordpress服务 主机B上部署 下载word_press_blog.tar.gz,并放在/web/host文件夹下 解压缩文件 tar xf word_press_blog.tar.gz cd blog 编辑wordpress配置文件 vim wp-config.php 测试访问效果: 看到此页面说明wordpress可以正常运行。 主机C上部署 复制wordpress安装文件到网页的根目录,并修改好数据库的账户和密码。 测试访问: 看到此页面说明wordpress可以正常运行。   填写管理员信息     注意:要设置里面把网站的url改成VIP的地址 否则无法上传图片和,发表文章。 配置图片上传文件夹 把wp-content的目录以及其下的文件的属主属组都修改为apache # mkdir wp-content/uploads [root@132 blog]# chown apache.apache wp-content -R [root@132 blog]# ll wp-content total 20 -rw-r--r-- 1 apache apache   28 Jan  9  2012 index.php drwxr-xr-x 4 apache apache 4096 Jan 11 18:02 languages drwxr-xr-x 3 apache apache 4096 Jan 11 18:00 plugins drwxr-xr-x 5 apache apache 4096 Jan 11 18:02 themes drwxr-xr-x 2 apache apache 4096 May 25 09:51 uploads ####把图片上传目录uploads使用NFS文件服务器提供#### 运行挂载命令 mount -t nfs -rw 192.168.60.138:/data/web/wp_photo /data/web/www/blog/wp-content/uploads 把主机B和主机C的uploads目录都挂载为138NFS文件服务器的/data/web/wp_photo目录。 从而可以实现:上传的图片,在2个httpd服务器上面,都可以浏览。      
LVS_nat模式总结要点
  • 调度器的核心转发必须打开
  • RS的网关需要需要指明调度器的DIP
  • 要确保RS的AMP功能能够正常实现。
  NFS文件服务器的总结要点
  • 要使httpd服务器的服务读写挂载文件夹的要点是
    • NFS文件服务器的挂载文件夹的文件系统权限要设置好
      • 要把导出的文件夹的属主属组设置为apache用户的UID和GID
        • 此处的apache用户的UID和GID要以httpd服务器的为准
      • 要把导出的文件夹的nfs服务权限要指定好。(在/etc/exports配置文件中设置。)
    • httpd服务器的挂载点的文件系统权限要设置好
      • 挂载点的属主属组要设置为apache用户。
  • 客户端端要安装NFS客户端的程序,才能挂载nfs文件系统。
  Wordpress服务的总结要点
  • 一定要在WP设置中把站点url设置为调度器的VIP
  • 要设置好Mariadb服务的用户和密码,以及数据库。(在wp-config.php中设置)
  • 如果出现不能创建文件的情况,要留意是不是文件系统的属主和属组要改成apache。
  MariaDB服务的总结要点
  • 要在配置文件中添加不反解ip的项目。
  • 创建要wordpress的用户,以及数据库。
  • 客户端要安装mariadbd客户端程序。