前面更新了個程序,每次拉取數據都會查詢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。