Programing Study/E.T.C
[Nginx] Nginx의 5가지 주요 기능에 대해서 알아보자. (로드 밸런싱, 캐싱, 장애 대응, 가상 호스팅, Keep Alive 제어)
Jude_Song
2022. 12. 30. 20:17
728x90
반응형
Nginx에 주요 기능이 총 5가지가 있다.
- 장애를 대응하는 방법
- 로드 밸런싱으로 부하분산을 수행하기
- Keep Alive로 자원을 효율적으로 이용하기
- Sub-Domain으로 다양한 서버 호스팅
- 캐싱 처리로 더 빠른 속도를 제공
장애 대응
장애 대응은 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
반응형