https://babbeolicoding.tistory.com/48
Nginx resolver 설정(Dynamic DNS resolution)
나 같은 경우 Nginx와 AWS ELB를 사용할 때 간헐적으로 Nginx 서비스가 안 되는 경우를 경험했다. 그 이유와 해결 방법에 대해서 포스팅을 진행해 봤다. - Dynamic DNS resolution란? DNS의 IP가 변경되었을때
babbeolicoding.tistory.com
Dynamic DNS resolution의 의미와 왜 resolver 설정이 필요한지는 위 게시글을 들어가서 확인하시길 바란다.
Haproxy resolver 사용하기
haproxy.cfg 값
resolvers mynameservers
nameserver ns1 192.168.2.10:53
nameserver ns2 192.168.3.10:53
# Maximum size of a DNS answer allowed, in bytes
accepted_payload_size 512
# Whether to add nameservers found in /etc/resolv.conf
parse-resolv-conf
=> 자동적으로 /etc/resolv.conf 경로에 있는 IP를 가져오는 기능
하지만 개인적인 경험으로 1.8.8 버전에서 해당 기능은 먹지 않았다.
hold valid 10s
hold other 30s
hold refused 30s
hold nx 30s
hold timeout 30s
hold obsolete 30s
=> 서버에서 만약 valid라고 return이 오면 해당 서버가
down 돼도 10초 동안은 valid라고 판단한다는 뜻
resolve_retries 3
=> 쿼리 몇번 시도할건지
timeout retry 1s
=> 실패한 경우 얼마나 기다렸다가 재시도 할건지
timeout resolve 1s
=> 회신 받았을때 얼마만에 성공이라고 판단 할건지
일반적으로 resolvers를 적용하는 방법
backend backend-server
server a hostname1.example.com:80 check resolvers mynameservers
init-addr을 사용해서 적용하는 방법
backend backend-server
server a hostname1.example.com:80 check resolvers mynameservers init-addr last,libc,none
init 할때 addr 정보를 가져온다는 뜻
","를 통해 방법의 순서를 설정할 수 있음
1. last : HAProxy Enterprise는 먼저 상태 파일(예: )에서 IP 주소를 가져오려고 시도함(server-state-file)
2. libc : 내부 "libc" 확인자를 사용하여 DNS 이름 확인을 시도
3. None : 이름을 확인하지 않고 시작할 수 있음을 나타내는 none 메서드로 이동
'Haproxy' 카테고리의 다른 글
Haproxy log 설정 (0) | 2023.06.15 |
---|---|
haproxy 예전 frontend로 서비스 호출되는 경우 (0) | 2023.06.14 |
Haproxy frontend http to backend https (0) | 2023.06.06 |