• 북마크

nginx

로드 밸런스

본문

nginx에서 제공하는 로드 벨런스 방식

  1. round-robin: 라운드 로빈방식으로 서버를 할당
  2. least-connected: 커넥션이 가장 적은 서버를 할당
  3. ip-hash: 클라이언트 IP를 해쉬한 값을 기반으로 특정 서버를 할당

옵션 정보
  • weight=n: 업스트림 서버의 비중을 나타낸다. 이 값을 2로 설정하면 그렇지 않은 서버에 비해 두배 더 자주 선택된다.
  • max_fails=n: n으로 지정한 횟수만큼 실패가 일어나면 서버가 죽은 것으로 간주한다.
  • fail_timeout=n: max_fails가 지정된 상태에서 이 값이 설정만큼 서버가 응답하지 않으면 죽은 것으로 간주한다.
  • down: 해당 서버를 사용하지 않게 지정한다. ip_hash; 지시어가 설정된 상태에서만 유효하다.
  • backup: 모든 서버가 동작하지 않을 때 backup으로 표시된 서버가 사용되고 그 전까지는 사용되지 않는다.
 
적용 예시

 demo-app-1 에 가중치 2 를 두고 5번의 실패 확인실패 후 30초 응답시간 설정, 마지막으로 demo-app-3는 모든 앱이 죽은 경우에만 사용  

server {
  listen  80;
  server_name {nginx server ip 혹은 domain 설정};

  access_log /var/log/nginx/proxy/access.log;
  error_log /var/log/nginx/proxy/error.log;

  location / {
    include /etc/nginx/proxy_params;
    proxy_pass http://express-app;
    # 에러처리 항목 추가
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
  }
}

upstream express-app {
  least_conn;

  server 127.0.0.1:7000 weight=2 max_fails=3 fail_timeout=30s;
  server 127.0.0.1:8000 max_fails=3 fail_timeout=30s;
  server 127.0.0.1:9000 backup;
}




테스트시 해당 서버가 죽을 경우의 에러를 확인하면 됨


/var/log/nginx/proxy/error.log



댓글목록 0

등록된 댓글이 없습니다.
전체 12 건 - 1 페이지
제목
최고관리자 1,063 2020.06.18
최고관리자 1,087 2020.04.10
최고관리자 1,163 2020.04.10
최고관리자 2,185 2020.04.06
최고관리자 5,221 2020.03.14
최고관리자 1,607 2020.03.03
최고관리자 1,217 2020.03.03
최고관리자 2,079 2020.03.03
최고관리자 1,645 2020.03.03
최고관리자 1,271 2020.03.03
최고관리자 1,502 2020.03.03
최고관리자 1,320 2020.03.03