前面更新了个程序,每次拉取数据都会查询gfs_shadow_master等相关域名,当请求量大时,dns有些抗不住了,程序响应也就变慢了,于是想到了用dnsmasq做本地dns缓存,效果很好。下面直接上部署代码吧:
yum install -y dnsmasq cat << END > /etc/dnsmasq.conf listen-address=127.0.0.1 #strict-order cache-size=2048 resolv-file=/etc/resolv.dnsmasq.conf END echo -e "nameserver 10.1.1.8\nnameserver 10.1.1.9" > /etc/resolv.dnsmasq.conf chkconfig dnsmasq on /etc/init.d/dnsmasq restart sed -i "1inameserver 127.0.0.1" /etc/resolv.conf
代码说明下:
listen-address:表示监听的地址;
resolv-
file:指定后端dns服务器;
strict-order:如果本地没有结果,则按顺序请求
resolv-
file中的dns server,不加此项则随机请求后端server;
cache-size:指缓存记录条数;
另外,缓存是有TTL的,如果dns server更新了某条记录,需要等待一段时间dnsmasq才会更新,如果要马上生效,可执行
/etc/init.d/dnsmasq reload
这些配置满足了当前的需求,具体其他配置可以参考官网或dnsmasq --help。
转载于:https://blog.51cto.com/bigys/1400864