NGINX Loadbalance 설정


upstream groupName {
  ip_hash;
  server {ip}:{port} weight=5;
  server {ip}:{port};
  server {ip}:{port} backup;
}

server {
  listen 80;
  server_name your.domain.com;

  location / {
    ...
    proxy_pass http://groupName;
  }
}

option

optiondescription

ip_hash

IP를 Hash해서 특정 클라이언트는 특정 서버로만 연결

least_conn

가장 클라이언트 연결 갯수가 적은 서버로 전달하는 설정

keepalive n

n개의 커넥션을 유지

slow_start=n

최근에 장애로부터 복구한 서버에 요청이 폭주하지 않도록 slow_start 에 주어진 시간만큼 기다려 줌

weight=n

특정 서버로 가는 요청의 가중치를 지정

max_fails=n

설정한 값 n만큼 실패가 발생하면 서버가 죽은 것으로 간주

fail_timeout

max_fails 가 설정된 상태에서 n 시간만큼 응답하지 않으면 죽은 것으로 간주

down

해당 서버를 사용하지 않는다. ip_hash 옵션이 설정된 경우에만 유효

backup

대기하고 있다가 설정된 모든 서버가 동작하지 않을 때 사용되는 서버