热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux主备dns切换时间,linux实现DNS轮询实现负载平衡

导读DNS轮询机制会受到多方面的影响,如:A记录的TTL时间长短的影响;别的DNS服务器Cache的影响;windows客户

导读

DNS 轮询机制会受到多方面的影响,如:A记录的TTL时间长短的影响;别的 DNS 服务器 Cache 的影响;windows 客户端也有一个DNS Cache。这些都会影响 DNS 轮询的效果。因此 DNS 的轮询机制并不能做为一个 load balancing的解决方案,只能作为一个 load distribution 方案。

不过有一个参数你可以试试看是否能调整一下轮询的效果:

在 named.conf 中可以设置 bind 的 round-robin 的给出结果的顺序:

options {

rrset-order { order random; };

};

rrset-order 支持三个参数:fixed, random, cyclic 。

fix 会将多个A记录按配置文件的顺序固定给出

random 会随机给出

cyclic 会循环给出

DNS轮询就是指DNS服务器将域名解析请求按照A记录的顺序,逐一分配到不同的IP上,同时在一定程度上也实现了简单的负载均衡。

我们先看一下 WINDOWS2003下如何设置DNS轮询。比如:有两台WEB主机,A主机ip是 192.168.1.1,B主机ip是192.168.1.4 , 企业里有单独一台DNS服务器,然后在该DNS服务器的正向区域里(域名为haiquan.net)分别建立两个主机A记录,第一个主机记录的记录IP是 192.168.1.1, 第二个主机记录的记录IP是192.168.1.4,附图:

7536eb4bb6ec4797bb7bb8c5c39b5ae6.png

转:

实现DNS轮询实现负载平衡

然后在DNS主机QINGYG上点击右键选择属性,在出现的对话框中勾选"启用循环",如图:

5c38178b1c9afdef7fa803b40db30f0b.png

注意:网络掩码排序可以根据子网掩码来判断dns地址和客户端是否在同一个网段或者离的比较近,然后优先返回较近的服务器的地址。

设置完毕后,我们看一下效果:

6b003a18350eb0f267786333d9401838.png

注意:WINDOWS会缓存DNS结果,为方便观察轮询情况,我们需要用"ipconfig /flushdns"来清空DNS缓存。

下面我们看一下LINUX下如何设置DNS轮询,以RHEL 5为例:

1、首先需要安装BIND并搭建DNS服务器(具体DNS搭建过程请参考相关资料)

#yum install -y bind* caching-nameserver*

安装DNS服务器一般需要安装以下三个数据包:

bind-utils-9.3.3-7.el5

查询用

bind-chroot-9.3.3-7.el5

安全机制

caching-nameserver-9.3.3-7.el5

配置文件

2、修改区域数据配置文件(example.com.db),这里主要看一下DNS轮询配置

IN MX 10 mail.example.com.

... ...

mail IN A 192.168.1.9

IN A 192.168.1.10

IN A 192.168.1.11

在以上配置中,mail.example.com对应了3个IP地址,此时具体选择哪一条A记录,是由rrset-order语句决定的。另外,在反向解析文件中,这3个IP也都要对应mail主机,以免有些邮件服务器为了反垃圾邮件进行反向查询时出现问题。

这是在 /etc/named.conf 文件中 options 语句有关rrset-order配置的一个例子:

rrset-order {

class IN type A name "mail.example.com" order random;

order cyclic;

};

这个设置会使处于IN类中的A记录的响应以随机顺序返回,IN 类以"mail.example.com"为后缀。其他的记录以循环记录被返回。

rrset-order 支持三个参数:fixed, random, cyclic 。

fixed 将多个A记录按配置文件的顺序固定给出

random 随机给出

cyclic 循环给出

注:rrset-order语句并不被BIND9支持,BIND9目前只支持"random-cyclic"排序,服务器随机选择RRset集中的开始点,有顺序返回在那个点开始的记录。

3、测试看结果:

[root@linux252:/]#host mail.example.com

mail.example.com has address 192.168.1.9

mail.example.com has address 192.168.1.10

mail.example.com has address 192.168.1.11

总结一下:

DNS轮询的配置是比较方便的,如果网络扩增,新增的Web服务器只要增加一个公网IP即可。 但相对来说,DNS轮询也有其自身的一些缺点,这个工作当中也是我们需要注意的。

其一:如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。修改DNS记录全部生效一般要1-3小时,甚至更久;

其二:如果几台Web服务器之间的硬件配置不同,导致能够承受的压力也是不同的,但是DNS轮询解析目前不能很好的按权重进行分配。

其三:如果是 需要身份验证的网站,DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过 期,而重新查询服务器并指向了新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能被要求重新认证身份,而且来回切换时间长了各台服 务器都保存有用户不同的信息,对服务器资源也是一种浪费。

原文来自:



推荐阅读
  • 服务器系统控制台怎么打开文件,云服务器控制台怎么打开文件
    云服务器控制台怎么打开文件内容精选换一换远程桌面协议(RemoteDesktopProtocol,RDP),是微软提供的多通道的远程登录协议。本节为您介 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • webpack 配置IP 和端口号
    最近在用webpack搭建本地服务器的时候,因为不想总是用localhost来跑,所以对webpack.config.js进行了配置,如下devServer:{publicPath ... [详细]
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • 13Linux基本命令和配置服务器来电后自动开机
    本节所讲内容:Linux终端介绍Shell提示符BashShell基本语法基本命令的使用:ls、pwd、cd查看系统和BIOS硬件时间Linux如何获得 ... [详细]
  • 11 微服务网关(一)概念介绍  Zuul简单入门
    11.1服务网关的概念11.1.1什么是微服务网关11.1.2作用和应用场景11.2常见的API网关实现方式11.3基于Nginx的网关实现IP地址映射到路径,统一 ... [详细]
  • 缓存的重要性就不用再强调了,@OutputCache给我们提供了一种声明的方式(对应的还有编程的方式)来控制页面和用户控件的缓存策略,这是一种最简单直接的网站优化方式。还是先来过一遍@ ... [详细]
  • 启动监控MonitorTables主要存储一些监控信息(当前运行的SQL,IO统计信息,当前进程情况)比如monDevic ... [详细]
  • 情况说明最近打开Github经常会遇到用户头像或者仓库中的图片无法预览。F12打开控制台也能看到一堆报错信息。解决方法找到hosts文件Win:C:\Windows\Sys ... [详细]
  • 高并发网站架构的核心原则其实就一句话“把所有的用户访问请求都尽量往前推“,即:能缓存在用户电脑本地的,就不要让他去访问CDN。能缓存CDN服务器上的,就不要让CDN去访问源(静态服 ... [详细]
  • 如何实现Percona Mysql Galera多读写集群的部署
    本篇文章给大家主要讲的是关于如何实现PerconaMysqlGalera多读写集群的部署的内容,感兴趣的话就一起来看看这篇文章吧,相信看完如何实现PerconaMysq ... [详细]
  • 从分布式数据库选型的第一件事谈起
    本文很长,谨慎阅读现在在我们的面前摆着太多的分布式数据库可以让我们选择,那么如果我想先让 ... [详细]
  • 系统不能本文来源gaodai$ma#com搞$代*码*网连接数据库,关键要看两个数据:1、数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设 ... [详细]
  • js html 图片 缓存问题,如何防止浏览器缓存CACHE?将CSS、JS、图片加上参数
    什么是浏览器缓存浏览器缓存功能是网页性能优化的项目之一使用浏览器缓存功能如果用户再次来到您的网站,缓存css、js、jpg、png图档等静态资源将能使网页打开速度加快 ... [详细]
author-avatar
安茂友恢复_172
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有