基于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 ...
随机推荐
- sql 查询目标数据库中所有的表以其关键信息
1.查询目标库中的所有表 SELECT obj.name tablename, ---表名 schem.name schemname, ---表所属的方案 idx.rows, ---一共有几行数组 C ...
- MySQL多表更新
多表更新:参照另外的表来更新本表的内容 table_reference {[inner | cross] join | {left | right} [outer] join} 内连接.左外连接.右 ...
- 004-C3P0连接池工具类模板
package ${enclosing_package}; import java.sql.Connection; import java.sql.ResultSet; import java.sql ...
- 关于require js加载的时候报错的问题
1.在项目中使用了requery.js 页面总是会出项一些奇怪的错误,如下 后来经过查找资料才发现,原来是因为依赖 的问题,因为require加载的时候是异步加载,而js之间是有相互依赖的,所以解决 ...
- 遇到Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
今天在做spring和hibernate整合的时候遇到这个问题 网上搜找到这里有解决办法 http://blog.csdn.net/jueshengtianya/article/details/122 ...
- 使用git配合idea使用oschina代码仓库初级教程
http://git.oschina.net/ 这个是开源中国的代码仓库是免费的,可以建100和仓库,私有也是免费的 第一步,创建 oschina代码仓库,这里就忽略了.很简单.去注册一个简单几步就可 ...
- hibernate 学习笔记1
Hibernate session1 1.连接池的最小连接数指的是连接池初始化之后,就存在的连接数,这些连接放在内存中,等待被使用.最大连接数限定了连接池中最大同时连接数量,如果超过了这个数量,则进入 ...
- 入门系列之在Nginx配置Gzip
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小铁匠米兰的v 发表于云+社区专栏 简介 网站加载的速度取决于浏览器必须下载的所有文件的大小.减少要传输的文件的大小可以使网站不仅加载 ...
- Exception from System.loadLibrary(smjavaagentapi) java.lang.UnsatisfiedLinkError: no smjavaagentapi in java.library.path
可能原因: 缺少smjavaagentapi.jar文件或者libsjavaagentapi.so缺少相关的依赖包. 解决方法: 1. 检查sso的lib下面是否有smjavaagentapi.jar ...
- 架构实战项目心得(四):使用Nexus配置Maven私有仓库
一.安装配置Nexus 1. 下载nexus https://www.sonatype.com/download-oss-sonatype 2. 解压:tar -zxfnexus-3.5.2-01 ...