Haproxy

Haproxy resolver 설정(Dynamic DNS resolution)

babbeolicoding 2023. 6. 13. 23:24

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