基于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源码之JDK(二)——Integer、Long、Double
这篇文章继续java.lang包下的源码学习,笔者也是找了几个比较常用的来阅读.下面针对Integer.Long.Double这样的基本类型的封装类,记录一些比较经典.常用的方法的学习心得,如toSt ...
- Wordpress 忘记密码怎么办?
最近一段时间很忙,很久没更新自己博客了,结果忘记了密码? 这里提供两种方法解决. 1. 点击忘记密码,会根据你的邮箱发送一封密码重置邮件,如果没配制邮件或是空间没开启支持,那就有点悲剧了,可以用第二 ...
- git 自己创建了一个项目A,我的同事fork一个B,当我的项目更新的时候,怎么样在他fork的repo上进行相应的更新?
先把B clone到本地 git clone B_REPOSITORY_URL 再cd到本地B的目录,把A作为一个remote加到本地的B中(一般命名为upstream) git remote add ...
- Bash编程(3) 命令行解析与扩展
$@表示脚本输入的全部参数,在bash脚本中,若$@增加引号("$@"),则包含空格的参数也会被保留,若不增加引号($@),则包含空格的参数会被拆分. 例: # sa脚本内容如下: ...
- 设置 mysql允许外网访问
mysql的root账户,我在连接时通常用的是localhost或127.0.0.1,公司的测试服务器上的mysql也是localhost所以我想访问无法访问,测试暂停. 解决方法如下: 1,修改表, ...
- Frequency-tuned Salient Region Detection MATLAB代码出错修改方法
论文:Frequency-tuned Salient Region Detection.CVPR.2009 MATLAB代码运行出错如下: Error using makecform>parse ...
- [转]【Oracle Database 12c新特性】32k varchar2 max_string_size
本文转自:https://blogs.oracle.com/askmaclean/entry/oracle_database_12c%E6%96%B0%E7%89%B9%E6%80%A7_32k_va ...
- C#语言-05.委托和事件
a. 委托:是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联.所谓兼容的方法,是指这个方法和委托的方法签名具有相同的返回类型和参数 i. 语法:delegate 方法签名; . 方法签名是方 ...
- RabbitMQ - 远程过程调用
试着用RabbitMQ进行RPC. 其实用RabbitMQ搞RPC也没什么特别的.只是我们需要在请求中再加入一个callback queue.比如这样: callbackQueueName = cha ...
- 一:Maven知识整理
一:maven的好处 1.依赖管理:对jar包的统一管理 可以节省空间 2.项目一键构建: 编码 编译 测试(junit) 运行 打包 部署 一个 tomcat:run就能把项目运行起来 Maven能 ...