ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Nginx] Nginx의 5가지 주요 기능에 대해서 알아보자. (로드 밸런싱, 캐싱, 장애 대응, 가상 호스팅, Keep Alive 제어)
    Programing Study/E.T.C 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
    반응형
Designed by Tistory.