티스토리 뷰

반응형

What is NginX?

NGINX 는 웹 서비스, 리버스 프록시, 캐싱, 로드 밸런싱, 미디어 스트리밍 등을 위한 오픈 소스 소프트웨어이며
최대 성능과 안정성을 위해 설계된 웹 서버 서비스이다.

HTTP 서버 기능 외에도 NGINX는 이메일(IMAP, POP3 및 SMTP)용 프록시 서버와 HTTP, TCP 및 UDP 서버용 리버스 프록시 및 로드 밸런서로도 사용할 수 있습니다.

프록시

두 PC가 통신을 할 때 직접 하지 않고 중간에서 대리로 통신을 하는 것을 프록시라고 하고, 중계 역할을 하는 것을 프록시 서버 라고 한다.

리버스 프록시

애플리케이션 서버의 앞에 위치하여 클라이언트가 서버를 요청할 때 리버스 프록시를 호출하고,
리버스 프록시가 서버로부터 응답을 전달받아 다시 클라이언트에게 전송하는 역할을 한다.

이 경우, 클라이언트는 애플리케이션 서버를 직접 호출하는 것이 아니라 프록시 서버를 통해 호출하기 때문에
리버스 프록시는 애플리케이션 서버를 감추는 역할을 하게 된다.

EX) NginX, Apache Web Server

  • 로드밸런싱
    • 리버스 프록시 뒤에 여러 개의 WAS를 둠으로써, 사용자 요청을 분산할 수 있다.
    • End-point 마다 호출 서버를 설정할 수 있어 역할에 따라 서버의 트래픽을 분산할 수도 있다.
  • 보안 : 서버에 직접 접근하는 것을 방지하고 네트워크에 리버스 프록시를 구성하여 접근하도록 한다.

포워드 프록시

클라이언트에서 서버로 리소스를 요청할 때 직접 요청하지 않고 프록시 서버를 거쳐서 요청한다.

이 경우 서버에서 받는 IP는 클라이언트의 IP가 아닌 프록시 서버의 IP 이기 때문에 서버는 클라이언트가 누군지 알 수 없다.
즉, 서버에게 클라이언트의 익명성을 보장한다.

  • 캐싱

    • 포워드 프록시는 정적 데이터를 저장해두고 동일한 요청의 경우 웹서버 까지 가지 않고 포워드 프록시에서 처리할 수 있는 캐싱 역할을 수행한다.
  • IP우회

  • 제한

    • 보안이 중요한 사내망에서 정해진 사이트에만 연결 할 수 있도록 설정하는 등 웹 사용 환경을 제한할 수 있다.

로드 밸런싱


서버가 부담하는 부하를 분산해주는 장치 혹은 기술이다.

네트워크에서 IP 주소와 MAC 주소를 이용해 목적지 IP 주소를 찾아가고 출발지로 되돌아오는 구조이다.

부하 분산 방식은 크게 두가지 HW방식SW방식으로 구분된다.

HW 방식

  1. Layer 4 (전송계층) 로드 밸런싱
  • 네트워크 계층 layer4(전송)에서 실행
  • TCP/UDP 포트 정보를 바탕으로 진행
  • 데이터 안을 보지 않고 패킷 레벨에서만 진행
    • 속도 빠르고 효율 높다
    • 데이터 내용을 부호화하지 않아 안전하다
    • L7보다 저렴하다
  • 사용자의 IP가 수시로 바뀌는 경우 연속적인 서비스 제공이 어렵다.
  1. layer 7 (응용계층) 로드 밸런싱
  • 네트워크 계층 layer7(응용)에서 실행
  • TCP/UDP + HTTP의 URI, FTP 파일명, 쿠키 정보 등을 바탕으로 진행
  • 캐싱 기능을 제공
  • 상세한 라우팅이 가능
  • 비정상적인 트래픽은 사전에 필터링 > 안전성 높아짐
  • 비용은 L4보다 높다.

SW 방식

리버스 프록시 기반의 로드밸런싱

  • HAProxy
    • HV, Proxy, TCP/HTTP 로드 밸런싱을 지원하는 제품. Airbnb, Github, naver ncloud에서 사용중.
  • Seeasaw
    • 구글에서 GO언어로 개발하였으며, 우분투/데비안과 같은 리눅스 배포판에서도 잘 동작됨. Anycast, DSR을 지원함. 기본적으로 L4 network에서 작동하며, L7에서 로드 밸런싱도 가능함.
  • KEMP
    • AWS 또는 Azure와 같은 클라우드 데이터센터에 배포하여 사용 가능함. 무료이지만 사용 수준의 기능을 제공하며 Apple, Sony 등에서 사용함.
  • Nginx
    • 기본 수준의 컨텐츠 스위칭 및 여러 서버에 대한 라우팅 지원함

Reference

반응형

'Docker 🐋' 카테고리의 다른 글

Nginx 로드 밸런싱 방식  (0) 2022.06.23
이미시 build 시 생성되는 <none> image  (0) 2022.06.22
nginx.conf 와 default.conf 의 차이점  (0) 2022.06.20
Docker network  (0) 2022.06.19
Docker Logging - elk  (0) 2022.06.18
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함