实现环境:

实现原理:

共四台服务器 A,B,C,D

服务器A (CentOS 6.7):

IP地址:

192.168.3.67

角色:

DNS服务

说明:

为两台web服务器做域名轮询

服务器B,C (CentOS 7.2):

IP地址:

B:192.168.3.70

C:192.168.3.77

角色:

web服务器

说明:

httpd+php模式.共享使用由服务器D通过NFS服务共享的Discuz文档.

服务器D (CentOS 6.7):

IP地址:

192.168.3.60

角色:

MySQL服务器,NFS服务器

说明:

MySQL允许服务器B,C远程连接

NFS服务为服务器B,C共享Discuz所有文档

服务器D

Mysql服务

 

安装Mysql:

# yum install -y mysql-server mysql mysql-devel

启动mysql

# service mysqld start

检查3306端口是否被mysql监听

# netstat -anp | grep 3306

检查是否开机自启动

# chkconfig --list | grep mysqld

[root@localhost ~]# chkconfig --list | grep mysqld

mysqld         0:off        1:off        2:off        3:off        4:off        5:off        6:off

设置为开机自启

# chkconfig mysqld on

[root@localhost ~]# chkconfig mysqld on

[root@localhost ~]# chkconfig --list | grep mysqld

mysqld         0:off        1:off        2:on        3:on        4:on        5:on        6:off

给mysql的root帐户设定密码为"root"

# /usr/bin/mysqladmin -u root password 'root'

登陆mysql

# mysql -u root -p

[root@localhost ~]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

创建一个数据库dzdb

mysql> create database dzdb;

给这个数据库创建并绑定一个数据库用户dzuser,可以通过所有192.168.3网段访问,并指定密码为dzuser

mysql> grant all privileges on dzdb.* to 'dzuser'@'192.168.3.%' identified by 'dzuser';

测试中发现远程主机无法连接

[root @qt1 /web/vhosts/pma]# mysql -udzuser1 -h192.168.3.60 -p

Enter password:

ERROR 1045 (28000): Access denied for user 'dzuser'@'192.168.3.77' (using password: YES)

排除防火墙原因后,发现导致无法登陆的原因是user表中有空用户所致.

删除掉空用户即可:

mysql> delete from user where user='';

NFS服务设定

安装NFS:

# yum install nfs-utils

创建共享文件夹

# mkdir /var/www/nfs

设置权限

# setfacl -m u:apache:rwx /var/www/nfs

设定,允许服务器B和C读写

# vim /etc/exports

/var/www/nfs 192.168.3.70(rw,no_root_squash) 192.168.3.77(rw,no_root_squash)

启动服务,首先保证rpcbind服务已开启

# service rpcbind start

# service nfs start

设置开机自启

# chkconfig rpcbind on

# chkconfig nfs on

# chkconfig nfslock on

查看本机共享

# showmount -e

服务器B

创建挂载点

# mkdir /web/nfsdz

将这个目录设定主目录

# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/web/nfsdz"

DirectoryIndex index.php index.html

# systemctl reload httpd

安装nfs

# yum install nfs-utils

# systemctl start rpcbind

# systemctl start nfs

挂载

# mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 192.168.3.60:/var/www/nfs /web/nfsdz

加入开机启动

# vim /etc/fstab

192.168.3.60:/var/www/nfs /web/nfsdz nfs defaults,_netdev 0 0

Discuz文档

将Discuz网站文档放进/web/nfsdz文件夹,步骤略.

添加权限

# cd /web/nfsdz

# chmod -R 777 *

服务器C

设置部分同服务器B

安装Discuz

浏览器输入http://192.168.3.70/install 开始安装Discuz,数据库配置填写上面刚做的配置,如图

安装完毕,分别测试访问192.168.3.70和192.168.3.77

服务器A(DNS服务器)

BIND安装步骤略

关键配置部分:

由于是本地测试,所以我自定义一个域名www.testdz.com.

# vim /etc/named.rfc1912.zones

添加以下设置

zone "testdz.com" IN{

type master;

file "testdz.com.zone";

};

保存退出

# vim /var/named/testdz.com.zone

$TTL 600

@        IN        SOA        ns1.testdz.com.         admin.testdz.com. (

2016051808

3H

15M

1W

1D

)

IN        NS        ns1.testdz.com.

IN        NS        ns2.testdz.com.

www        IN        A        192.168.3.77

www        IN        A        192.168.3.70

testdz.com.        IN        A        192.168.3.77

ns2        IN        A        192.168.3.70

ns1        IN        A        192.168.3.67

关键为黑体加粗部分,使用DNS轮询.

保存退出

重载配置

# service named reload

之后便可以通过域名www.testdz.com访问了,不同计算机第一次访问会被DNS分配到不同的主机上.

基于NFS实现多WEB服务器负载均衡的更多相关文章

  1. 部署LAMP+NFS实现双Web服务器负载均衡

    一.需求分析 1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器: 2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着多台 ...

  2. web服务器负载均衡与集群基本概念二

    前面已经说过负载均衡的作用是在多个节点之间按照一定的策略(算法)分发网络或计算处理负载.负载均衡可以采用软件和硬件来实现.一般的框架结构可以参考下图.    后台的多个Web节点上面有相同的Web应用 ...

  3. web服务器负载均衡与集群基本概念一

    Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务.集群更标准的定义是:一组相互独立的服务器在网络中表现为单一的系统,并以 ...

  4. Web服务器负载均衡的几种方案 : DNS轮询

    本篇主要讲一下最简单的方案——DNS轮询. DNS轮询 大多域名注册商都支持多条A记录 的解析,其实这就是DNS轮询 ,DNS 服务器 将解析请求按照A记录 的顺序,逐一分配到不同的IP上,这样就完成 ...

  5. 高并发之web服务器负载均衡简单介绍

    负载均衡种类 F5,七层负载均衡,四层负载均衡 Nginx负载均衡 内置策略.扩展策略 内置策略:IPHash.加权轮询 扩展策略:fair策略.通用hash.一致性hash 加权轮询策略 首先将请求 ...

  6. 高性能Nginx服务器-负载均衡

    Location正则表达式 location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作. locatio ...

  7. Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

    通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至 ...

  8. web实现负载均衡的几种实现方式

    摘要: 负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根据实现的 ...

  9. 服务器负载均衡lvs(Linux Virtual Server)

    服务器负载均衡lvs(Linux Virtual Server) 一.总结 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 三.Linu ...

随机推荐

  1. spark跑YARN模式或Client模式提交任务不成功(application state: ACCEPTED)

    不多说,直接上干货! 问题详情 电脑8G,目前搭建3节点的spark集群,采用YARN模式. master分配2G,slave1分配1G,slave2分配1G.(在安装虚拟机时) export SPA ...

  2. TXSQL:云计算时代数据库核弹头——云+未来峰会开发者专场回顾

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 5月23-24日,以"焕启"为主题的腾讯"云+未来"峰会在广州召开,广东省各级政府机构领导.海内外业 ...

  3. 公用表表达式 (CTE)、递归

    指定临时命名的结果集,这些结果集称为公用表表达式 (CTE).公用表表达式可以包括对自身的引用.这种表达式称为递归公用表表达式. 对于递归公用表达式来说,实现原理也是相同的,同样需要在语句中定义两部分 ...

  4. MvvmLight - ViewModelLocator

    这里先鼓舞下士气,ViewModelLocator很简单,甚至可以去掉,它不是Mvvm必须的.在初学Mvvm时,一般都是使用NuGet安装 MvvmLight框架,总是会带上那么一个ViewModel ...

  5. 二:Vim常用命令

    一般模式下的命令: -- 插入命令 i 光标前插入 I 当前行开始 o 下一行 O 上一行插入新行 a 光标后插入 A 当前行末尾 -- 定位命令 :set nu 显示行号 :set nonu 取消行 ...

  6. Java Object类的toString()方法

    Java只要定义一个类,那么它都在继承,没有说明它在继承哪个类的时候,则默认继承java.lang.Object类,也就是说Object类是所有类的父类.看下面一段代码. public class O ...

  7. Java使用反射来获取成员变量泛型信息

    Java通过指定类对应的Class对象,程序可以获得该类里包括的所有Field,不管该Field使用private修饰,还是使用public修饰.获得了Field对象后,就可以很容易的获得该Field ...

  8. Linux 安装 EPEL YUM源

    原文:https://blog.csdn.net/harbor1981/article/details/51135623 我们用yum安装软件时,经常发现我们的yum源里面没有该软件,需要自己去wge ...

  9. 使用PowerShell批量解除锁定下载的文件

    使用PowerShell批量解除锁定下载的文件 3.在需要解锁的文件所在的文件夹中空白处,按住Shift然后单击右键,在弹出的右键菜单中,选择“在此处打开PowerShell窗口”, 输入Get-Ch ...

  10. thinkphp下mysql用用户名或者手机号登录

    $res=$user->where("login_id='{$username}' OR phone='{$username}'")->find(); $phone=I ...