讲一下我本身的领略:
- 设置文件相同于 nginx 设置文件的名目;
- 最表面一级的大括号,对应『处事』的观念。多个处事可以共用一个端口;
- 往内里一级的大括号,对应 plugins 的观念,每一个大括号都是一个 plugin。这里可以看出,plugins 是 CoreDNS 的一等国民;
- 处事之间次序有无关联没有感受,但 plugins 之间是严峻次序相干的。某些 plugin 必需用 fallthrough 要害字流向下一个 plugin;
- plugin 内部的设置选项是次序无关的;
- 从 plugins 页面的先容看,CoreDNS 的成果照旧很强的,既能轻松从 bind 迁徙,还能兼容 old-style dns server 的运维风俗;
- 从 CoreDNS 的机能指标看,得当做大型处事。
虽然了,上面的设置文件还可以进级一下,详细我就不表明白:
- . {
- hosts {
- fallthrough
- }
-
- forward . 127.0.0.1:5301 127.0.0.1:5302 {
- max_fails 3
- expire 10s
- health_check 5s
- policy sequential
- except www.baidu.com
- }
-
- proxy . 117.50.11.11 117.50.22.22 {
- policy round_robin
- }
-
- cache 120
- reload 6s
- log . "{local}:{port} - {>id} '{type} {class} {name} {proto} {size} {>do} {>bufsize}' {rcode} {>rflags} {rsize} {duration}"
- errors
- }
-
- .:5301 {
- forward . tls://8.8.8.8 tls://8.8.4.4 {
- tls_servername dns.google
- force_tcp
- max_fails 3
- expire 10s
- health_check 5s
- policy sequential
- }
- }
-
- .:5302 {
- forward . tls://1.1.1.1 tls://1.0.0.1 {
- tls_servername 1dot1dot1dot1.cloudflare-dns.com
- force_tcp
- max_fails 3
- expire 10s
- health_check 5s
- policy sequential
- }
- }
按时更新海内域名列表
编写一个 shell 剧本,用来更新 Corefile 中解除的海内域名列表:
- $ brew install gnu-sed
- $ cat <<EOF > /usr/local/bin/update_coredns.sh
- #!/bin/bash
-
- chinadns=$(curl -sL https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf|awk -F "/" '{print $2}')
- touch update_coredns.sed && echo "" > update_coredns.sed
- for i in $chinadns; do echo "/except/ s/$/ $i/" >> update_coredns.sed; done
- gsed -i "s/(except).*/1/" /usr/local/etc/Corefile
- gsed -i -f update_coredns.sed /usr/local/etc/Corefile
- EOF
- $ sudo chmod +x /usr/local/bin/update_coredns.sh
先执行一遍该剧本,更新 Corefile 的设置:
- $ /usr/local/bin/update_coredns.sh
然后通过 Crontab 建造按时使命,每隔两全国午两点更新域名列表:
- $ crontab -l
- 0 14 */2 * * /usr/local/bin/update_coredns.sh
开机自启
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|