공유할 서비스 선택

TECH


TECH

Middleware (Nginx-3) Nginx 사용하는 옵션 정리 3_(health-check)

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 4,276회 좋아요 2회 작성일 20-06-06 09:25

본문

이번에는 요즘 많이 사용되고 있는 Nginx에 대해 설치 부터 튜닝까지 방법에 대해 진행해보겠습니다.

이번엔 두 번째로 Nginx에서 자주 사용하는 proxy_pass 에 대해 설명해드리겠습니다.

 

진행 순서는 1~8까지 가이드를 준비하고 있습니다.

  1. Nginx 설치 및 컴파일 방법_(모듈설치)
  2. Nginx 사용하는 옵션정리_proxy_pass
  3. Nginx 사용하는 옵션정리_upstream
  4. Nginx 사용하는 옵션정리_health-check
  5. Nginx 사용하는 옵션정리_sticky
  6. Nginx 사용하는 옵션정리_upstream, ip hash
  7. Nginx 사용하는 옵션정리_X-Forwarded-For
  8. Nginx 사용하는 옵션정리_php-fpm & zabbix 모니터링


Nginx 에서 제공하는 proxy_pass 설정을 잘 활용하면 was의 Instance 별 재기동 및 장애 발생시 health-check 를 자동으로 설정하여

WAS Instance 에서 서비스 이슈 발생하여 Thread Hang이 증가하여 큐가 발생했을때 해당 인스턴스로 호를 보내지 않고 정상적인 인스턴스로 호출을 보내면서 장애를 최소화 할 수 있습니다.

또한, 해당 health-check 기능을 활용하여 WAS Instance restart 및 stop 시 health-check 가 성공하지 않으면 해당 인스턴스로 호출을 보내지 않도록 할 수도 있습니다.

위 health-check 기능을 활용하면 서비스 중에도 재기동을 마음편히(?) 할 수 있고, 장애가 발생해서 WAS Instance 를 재기동 하느라 진땀빼지 않아도 됩니다.

 

아래 내용 참고해서 시스템에 맞도록 설계하시면 많은 도움이 될 거라 생각됩니다.

이해를 돕기위해 health-check 흐름도를 만들어 봤습니다.

 926ef1881a485067fbedab7489e28855_1591403230_5458.png 

 

 아래 순서대로 진행해보세요.

 1. health check 옵션이란?

WAS instance 가 정상적으로 작동하는지 sample 소스를 호출하여 http 2xx code 발생하면 정상이며,
2xx code 외에 다른 code 호출시 일정 Time을 준뒤 정상으로 돌아올때 까지 해당 인스턴스로 호출을 보내지 않는 방식

경로 : /etc/nginx/proxy/include
파일 : health-check.conf

check interval=2000 rise=5 fall=1 timeout=1000 type=http;
check_http_send "GET /health HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx;



2. health-check.conf 호출되는 순서 
- 경로 : /etc/nginx/

nginx.conf
nginx-proxy.conf

- 경로 : /etc/nginx/proxy

(폴더) backend
(폴더) include
서비스명.conf

- 경로 : /etc/nginx/proxy/backend

(폴더) 서비스명

- 경로 : /etc/nginx/proxy/backend/서비스명/health

health-check-base-adminserver.conf
health-check-base-apiserver.conf
health-check-base-batchwebserver.conf
health-check-base-frontweb.conf

3. URL health check 호출
nginx에서 health 설정을 하면 정해진 옵션에 따라 주기적으로 브라우저 호출을 진행한다.

URL : http://localhost/m/health

정상일경우 OK 화면이 브라우저에 호출된다. 


 

- health-check 샘플 소스

@Controller
public class HealthController {
    @Autowired(required=false)
    private HealthEndpoint healthEndpoint;

    @RequestMapping("/health")
    @ResponseBody
    @ConditionalOnBean(value={HealthEndpoint.class})
    public Json<?> health() {
        Health health = healthEndpoint.invoke();
        Status status = health.getStatus();
        if(status.equals(Status.UP)) {
            return Json.createJson(HttpStatus.OK);
        } else {
            throw new ResponseCodeException(HttpStatus.SERVICE_UNAVAILABLE.toString(),
                    HttpStatus.SERVICE_UNAVAILABLE.getReasonPhrase(),
                    HttpStatus.SERVICE_UNAVAILABLE.value());
        }        
    }
}

 


댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
105 Middleware 미들웨어 아이디로 검색 전체게시물 04-08 39
(오픈소스 활용-28) Java Flight Recorder 이란? Java 모니터링을 구현가능

카테고리 : Middleware

39 0
작성자 : 미들웨어 24/04/08
104 Middleware 미들웨어 아이디로 검색 전체게시물 03-21 97
(오픈소스 활용-27) Redis Cache 란? 활용방법과 다운로드

카테고리 : Middleware

97 0
작성자 : 미들웨어 24/03/21
103 Middleware 미들웨어 아이디로 검색 전체게시물 03-07 138
(weblogic 활용) WebLogic Kubernetes Toolkit-UI (무료) 설치 및 구성가이드

카테고리 : Middleware

138 0
작성자 : 미들웨어 24/03/07
102 Middleware 미들웨어 아이디로 검색 전체게시물 02-20 332
(AI-2) Chat-GPT 4All - 허깅페이스 & LLM 국내 인기순위 (Open Ko-LLM LeaderBoard)

카테고리 : Middleware

332 0
작성자 : 미들웨어 24/02/20
101 Middleware 미들웨어 아이디로 검색 전체게시물 02-06 362
(AI-1) Chat-GPT 4All - PC 설치 방법

카테고리 : Middleware

362 0
작성자 : 미들웨어 24/02/06
100 Middleware 미들웨어 아이디로 검색 전체게시물 01-19 192
(오픈소스 활용-26) scouter 2.22 에서 Weblogic14 모니터링 등록 중 이슈 조치방법

카테고리 : Middleware

192 0
작성자 : 미들웨어 24/01/19
99 Middleware 미들웨어 아이디로 검색 전체게시물 01-06 288
(오픈소스 활용-25) scouter 2.22 에서 JEUS8 모니터링 등록 하는 방법

카테고리 : Middleware

288 0
작성자 : 미들웨어 24/01/06
98 Middleware 미들웨어 아이디로 검색 전체게시물 12-22 264
(오픈소스 활용-24) 리눅스 java, python 우선순위 설정방법 - (update-alternatives 명령어)

카테고리 : Middleware

264 0
작성자 : 미들웨어 23/12/22
97 Middleware 미들웨어 아이디로 검색 전체게시물 12-07 495
(Apache) Apache 2.4.37 & Weblogic-14 연동방법 (mod_wl_24.so 활용)

카테고리 : Middleware

495 0
작성자 : 미들웨어 23/12/07
96 Middleware 미들웨어 아이디로 검색 전체게시물 11-23 862
(Tmax) JEUS 21 다운로드 및 Master 설치 및 기동해보기

카테고리 : Middleware

862 0
작성자 : 미들웨어 23/11/23
Total 105건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top