Programing Study/E.T.C

[Nginx] Nginx의 5가지 주요 기능에 대해서 알아보자. (로드 밸런싱, 캐싱, 장애 대응, 가상 호스팅, Keep Alive 제어)

Jude_Song 2022. 12. 30. 20:17
728x90
반응형

Nginx에 주요 기능이 총 5가지가 있다.

  1. 장애를 대응하는 방법
  2. 로드 밸런싱으로 부하분산을 수행하기
  3. Keep Alive로 자원을 효율적으로 이용하기
  4. Sub-Domain으로 다양한 서버 호스팅
  5. 캐싱 처리로 더 빠른 속도를 제공

장애 대응

장애 대응은 Backend 서버에 대한 요청과 응답을 토대로 장애를 판단하는 서비스이다.

 

장애 대응을 위해서는 Upstream Module을 사용하는데, max_fails, fail_timeout으로 서버의 상태를 확인한다.

 

그 설정으로 서버 상태를 확인해서 설정 값을 초과하면 백업 서버로 서비스가 활성화되게 하며 장애를 대응한다.

 

  • max_fails=n : n으로 지정된 횟수만큼 연결 실패하면 서버 다운된 것으로 판단.
  • fail_timeout=n : max_fails가 지정된 상태에서 n값이 설정만큼 서버가 응답하지 않으면 서버가 다운된 것으로 판단.
upstream service {
    ip_hash;
    server 192.168.0.121:80
    server 192.168.0.188:80 max_fails=5 fail_timeout=15s;
}

로드 밸런싱

클러스터에 설정되는 서버 정보와 포트를 upstream 모듈로 설정해서 첫 번째 설정된 서버가 우선으로 처리

upstream myservice {
    ip_hash;
    server 192.168.0.121:80;
    server 192.168.0.188:80;
}
server {
        listen 80;
        server_name localhost;

    location / {
        proxy_pass http://myservice;

}

Keep Alive 제어

Keep Alive는 Http 소켓 연결이 종료된 시점부터 웹 서버에 설정된 Timeout 까지 기존 소켓을 유지하는 기능으로,  Keep-Alive 옵션으로 0이 가면 비활성화 1이면 활성화로 설정할 수 있다.


keepalive_timeout 으로 커넥션 시간을 설정하고 해당 설정 시간이 만료되면 Keep Alive 소켓 연결을 해제한다.

upstream myservice {
    server 192.168.0.121:80;
    keepalive 1
}
Server {
    keepalive_timeout 10
}

Sub-Domain

가상호스트 방식으로 두 개의 server을 하나의 웹서버에서 호스팅할 수 있게 해준다.

server {
    listen 80;
    server_name test1.mydomain.com
    location / {
    root /var/www/test1/public_html;
}
server {
    listen 80;
    server_name test2.mydomain.com
    location / {
    root /var/www/test2/public_html;
}

 

캐싱 처리

캐싱이란 웹 서비스의 이미지,CSS, 자바스크립트 같은 정적인 데이터를 저장하여
웹 서비스의 응답 속도를 보다 빠르게 처리 가능하다

  • location : 캐시로 저장할 파일 설정
  • expires : 데이터의 저장 기간 설정
  • expires 1 (m, y) 설정 기간 동안 정적 데이터를 보관하는 설정으로 m은 달 y는 년
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
    expires 1M;
    access_log off;
    add_header Cache-Control "public";
}

 


오늘은 Nginx의 대표적인 기능 5가지에 대해서 알아보았다.

도움되셨으면 하단의 광고 클릭!

728x90
반응형