/ etc / hosts는 라운드 로빈을 지원하지 않지만 #RoundRobin 주석으로 태그가 지정된 항목을 대체하기 위해 간단한 bash 스크립트를 작성할 수 있습니다 (또는 사용하려는 다른 태그는 스크립트의 grep 행에 반영하십시오) .
#!/bin/bash
fqdnips=( $(nslookup sub.domain.com|grep Address:|awk -F\ '{ print $2 }'|grep -v '#') )
new=`printf "${fqdnips[@]}"`
old=`grep "#RoundRobin" /etc/hosts|awk -F\ '{ print $1 }'`
sed -i "s/$old/$new/g" /etc/hosts
위 스크립트는 sub.domain.com에 대한 nslookup의 출력을 가져 와서 배열에 저장합니다. 그런 다음 최상위 값을 $ new에 인쇄하고 / etc / hosts에 할당 된 태그 #RoundRobin의 기존 값을 가져옵니다. 마지막으로 sed replace를 수행합니다.
/ etc / hosts 파일 항목은 다음과 같습니다
127.0.0.1 localhost
::1 localhost
11.12.13.14 sub.domain.com #RoundRobin
마지막으로이 스크립트를 루트의 크론 탭에 두어 1 시간마다 실행하면 / etc / host round-robin이 생깁니다.
이는 API에서 일부 데이터를 가져 오는 코딩 된 페이지가 있고 API 서버에 대한 DNS 조회로 인해 페이지의 스크립트 실행에서 많은 정지 시간이 발생하는 경우 특히 유용합니다. 간단한 페이지 인 것 같습니다. 비용이 많이 드는 DNS 조회를 피하려면 (특히 사이트에서 분당 수백 번의 트래픽이 많은 트래픽을 처리하는 경우) / etc / hosts를 사용하여 원격 API 서버의 FQDN을 해결해야합니다. 이렇게하면 API 데이터를 가져 와서 페이지를 생성하는 데 CPU 사용량이 크게 줄어 듭니다.