配置dns haproxy nginx keepalived 高可用

1.1、名词解释
DNS系统
域名系统(DNS)是一个分层的分布式数据库。它存储用于将Internet主机名映射到IP地址(反
之亦然)的信息、邮件路由信息以及Internet应用程序使用的其他数据。
客户端通过调用解析器库在DNS中查找信息,解析器库向一个或多个名称服务器发送查询并解
释响应。BIND 9软件发行版包含一个名称服务器,named和一个名为liblwres的解析器库。
域和域名
存储在DNS中的数据由根据组织或管理边界组织为树的域名标识。树的每个节点(称为域)都
有一个标签。节点的域名是从节点到根节点的路径上所有标签的串联。这以书面形式表示为从右到左列
出并用点分隔的标签串。标签只需在其父域中是唯一的。
例如,exampleInc.公司主机的域名可以是ourhost.example.com,其中com
ourhost.example.com所属的顶级域,examplecom的子域,ourhost是主机的名称。
出于管理目的,名称空间被划分为称为区域的区域,每个区域从一个节点开始,向下延伸到
节点或其他区域开始的节点。每个区域的数据存储在名称服务器中,该服务器使用DNS协议回答有关
该区域的查询,与每个域名关联的数据以资源记录(RRs)的形式存储。
区域
如前所述,区域是DNS树中的委托点。区域由域名服务器拥有完整信息并拥有权限的域树的连
续部分组成。它包含从域树中某一点向下的所有域名,但委托给其他区域的域名除外。委派点由父分区
中的一个或多个NS记录标记,这些记录应与委派分区根上的等效NS记录匹配。
权威服务器
每个区域至少由一个权威名称服务器提供服务,该服务器包含该区域的完整数据。为了使DNS
能够容忍服务器和网络故障,大多数区域在不同的网络上有两个或两个以上的权威服务器。来自权威服
务器的响应在响应数据包中设置了权威应答AA)位。
主服务器
维护区域数据主副本的权威服务器称为主(或主)服务器,或简称为主服务器。通常,它从一
些由人工编辑的本地文件加载分区内容,或者可能从一些由人工编辑的其他本地文件机械生成分区内
容。此文件称为区域文件或主文件。但是,在某些情况下,区域文件可能根本不由人工编辑,而是动态
更新操作的结果。
辅助服务器
其他权威服务器(称为辅助(或从属)服务器)使用称为区域传输的复制过程从另一台服务器
加载区域内容。通常,数据直接从主主机传输,但也可以从另一个辅助主机传输。换句话说,辅助服务
器本身可以充当从属辅助服务器的主服务器。辅助服务器必须定期发送刷新查询,以确定区域内容是否已更新。这是通过发送一个对区域开
始授权(SOA)记录的查询并检查序列字段是否已更新来完成的;如果是,则启动新的传输请求。这些
刷新查询的计时由SOA刷新和重试字段控制,但可以使用最大刷新时间、最小刷新时间、最大重试时间
和最小重试时间选项覆盖。
如果无法在SOA EXPIRE选项指定的时间内更新区域数据(最多硬编码24周),则辅助区域将过
期,不再响应查询。
缓存服务器
大多数操作系统提供的解析程序库都是存根解析程序,这意味着它们无法通过直接与权威服务
器对话来自行执行完整的DNS解析过程。相反,它们依赖本地名称服务器来代表它们执行解析。这样的
服务器称为递归名称服务器;它对本地客户端执行递归查找。
为了提高性能,递归服务器缓存它们执行的查找结果。由于递归和缓存过程紧密相连,术语递
归服务器和缓存服务器通常是同义词。
记录可以保留在缓存名称服务器的缓存中的时间长度由与每个资源记录关联的生存时间(TTL)字段控
制。
转发服务器
即使是缓存名称服务器本身也不一定执行完整的递归查找。相反,它可以将无法满足的部分或
全部查询从其缓存转发到另一个缓存名称服务器(通常称为转发器)。
当管理员不希望给定站点上的所有服务器直接与Internet的其余部分交互时,通常使用转发
器。例如,常见的情况是多个内部DNS服务器位于Internet防火墙后面。防火墙后面的服务器将其请求转
发给具有外部访问权限的服务器,该服务器代表内部服务器查询Internet DNS服务器。

2:配置bind

思路:首先明确配置这个需要配置两个文件(第一个是/etc/named.conf 第二个是在第一个文件下写的区域文件 扩充:你也可以写反向区域文件)

1:/etc/named.conf

options {
        listen-on port 53 { 192.168.10.40; };
        directory       "/var/named";

};


zone "example.com" IN {
        type master;
        file "example.com";
};

代码解释: (1):这里的listen-on 的ip是dns本身的

                        (2): zone是区域文件 你要编写对应的区域文件

2:区域文件:vi /var/named/baidu.com

$TTL 1D
@    IN    SOA    @     admin.example.com.(1 1D 1H 2D 1D)
     IN    NS     ns
ns   IN    A      192.168.10.40
www  IN    A      192.168.10.200

 解释: 因为用的keepalived 需要虚拟ip 所以这里的www写虚拟ip  

            这里的ns写自己的bindip

3:配置haproxy(需要两台)

每一台都要安装keepalive和haproxy

配置haproxy

vi /etc/haproxy/haproxy.cfg

global
    
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

    # utilize system-wide crypto-policies
    ssl-default-bind-ciphers PROFILE=SYSTEM
    ssl-default-server-ciphers PROFILE=SYSTEM

defaults
    mode		    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend main
    bind 192.168.10.200:80
    acl n1 path_sub -m sub /n1
    use_backend n1servers if n1
    default_backend             nginxservers

backend n1servers
    balance     roundrobin
    server  nginx1 192.168.10.10:80 check inter 2000 rise 3 fall 2 weight 2

backend nginxservers
    balance     roundrobin
    server  nginx2 192.168.10.20:80 check inter 2000 rise 3 fall 2 weight 2
    

配置keepalived

vi /etc/keepalived/keepalived.conf

第一个haproxy
 

global_defs {
   router_id LVS_DEVEL-1
}

vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200
    }
}

第二个haproxy

global_defs {
   router_id LVS_DEVEL-2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens160
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200
    }
}

4:配置nfs

 dnf install nfs-utils -y
   33  mkdir /nfs/data -p
   34  chown -R nobody: /nfs/data
   35  ll -d /nfs/data
   36  vi /etc/exports
   37  echo "index.html" > /nfs/data/index.html
   39  ll /nfs/data/index.html
   42  systemctl start nfs-server
   43  ps -ef | grep nfs*
   44  ss -lntup 
   45  showmount -e 192.168.10.30
   47  ls
   48  cd  /nfs/data/
   50  mkdir n1
   51  echo "nginx 192.169.72.10" > test/index.html
   52  echo "nginx 192.169.72.10" > n1/index.html
   53  chown -R nobody: /nfs/data
   54  ls
   55  echo "nginx 192.169.72.10" > index.htmlinit 
   58  systemctl start nfs-server

5:配置nginx(两台)

dnf install nginx -y
  145  cd /usr/share/nginx/html/
  146  ;s
  147  ls
  148  rm -rf *
  149  ls
  150  dnf install nfs-utils -y
  151  mount -t nfs 192.168.10.30:/nfs/data /usr/share/nginx/html/
  152  ls
  153  showmount -e
  154  showmount -e  192.168.10.30:
  155  showmount -e  192.168.10.30
  162  systemctl start nfs-utils
  163  ls
  164  cd
  165  ls /usr/share/nginx/html/
  166  cd /usr/share/nginx/html/
  167  ls
  169  touch /usr/share/nginx/html/test.html
  171  systemctl start nginx

6:最后全部配置完了之后再访问www.example.com就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值