基于NFS实现多WEB服务器负载均衡
实现环境:
实现原理:
共四台服务器 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服务器负载均衡的更多相关文章
- 部署LAMP+NFS实现双Web服务器负载均衡
一.需求分析 1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器: 2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着多台 ...
- web服务器负载均衡与集群基本概念二
前面已经说过负载均衡的作用是在多个节点之间按照一定的策略(算法)分发网络或计算处理负载.负载均衡可以采用软件和硬件来实现.一般的框架结构可以参考下图. 后台的多个Web节点上面有相同的Web应用 ...
- web服务器负载均衡与集群基本概念一
Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务.集群更标准的定义是:一组相互独立的服务器在网络中表现为单一的系统,并以 ...
- Web服务器负载均衡的几种方案 : DNS轮询
本篇主要讲一下最简单的方案——DNS轮询. DNS轮询 大多域名注册商都支持多条A记录 的解析,其实这就是DNS轮询 ,DNS 服务器 将解析请求按照A记录 的顺序,逐一分配到不同的IP上,这样就完成 ...
- 高并发之web服务器负载均衡简单介绍
负载均衡种类 F5,七层负载均衡,四层负载均衡 Nginx负载均衡 内置策略.扩展策略 内置策略:IPHash.加权轮询 扩展策略:fair策略.通用hash.一致性hash 加权轮询策略 首先将请求 ...
- 高性能Nginx服务器-负载均衡
Location正则表达式 location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作. locatio ...
- Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理
通过我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至 ...
- web实现负载均衡的几种实现方式
摘要: 负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根据实现的 ...
- 服务器负载均衡lvs(Linux Virtual Server)
服务器负载均衡lvs(Linux Virtual Server) 一.总结 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 三.Linu ...
随机推荐
- Java入门系列-24-实现网络通信
互联网上那么多设备,java 是如何与其他设备通信的呢?这次的内容是网络通信的基础,有了它咱们才能上网页.玩游戏.视频聊天. Socket 客户端套接字 Socket 客户端套接字,用于连接互联网提供 ...
- 2.Windows服务-->安装卸载服务
1.使用vs组件“VS2012开发人员命令提示” 工具,进行安装卸载服务(必须以“管理员身份运行") 安装和卸载的时候选择合适的安装程序工具地址,例如: 安装服务:C:\Windows\Mi ...
- 让div铺满整个空间
需要用到几个css属性: .content{ width:100%;position: absolute;top: 50px;bottom: 0px;left: } 设置了bottom.top及abs ...
- .NET MVC Scripts.Render 上下文不存在问题解决方法
要想使用 @Scripts.Render(),就要用到 BundleConfig.cs 这个类,在App_Start目录下新建一下这个类, 类的内容如下: 使用这个类需要引入 using System ...
- Tips——单页面内的多重跳转路由使用
一.问题背景 一个路由往往代表一个地址,即一个页面.但同级网页页面的内容有很多是重复的,如果每次加载页面都要加载这些“共有”内容,会导致效率的降低.因此,单页面应用应运而生.它主张在同一页面下将“共同 ...
- 子级用css float浮动 而父级不能自适应高度解决方法
解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 当在对象内的盒子使用了float后,导致对象本身不能被撑开自适应高度,这个 ...
- Scrapy框架的使用
Scrapy框架的安装 pip install pywin32 下载 Twisted 包 pip install Twisted包的路径 pip insatll scrapy Scrapy ...
- BZOJ3992: [SDOI2015]序列统计(NTT 原根 生成函数)
题意 题目链接 给出大小为\(S\)的集合,从中选出\(N\)个数,满足他们的乘积\(\% M = X\)的方案数 Sol 神仙题Orz 首先不难列出最裸的dp方程,设\(f[i][j]\)表示选了\ ...
- 洛谷P1155 双栈排序(贪心)
题意 题目链接 Sol 首先不难想到一种贪心策略:能弹则弹,优先放A 然后xjb写了写发现只有\(40\),原因是存在需要决策的情况 比如 \(A = {10}\) \(B = {8}\) 现在进来一 ...
- MYSQL数据库索引类型及使用
MYSQL数据库索引类型包括普通索引,唯一索引,主键索引与组合索引,这里对这些索引的做一些简单描述: (1)普通索引 这是最基本的MySQL数据库索引,它没有任何限制.它有以下几种创建方式: 创建索引 ...