[네트워크] NGINX 로 Reverse Proxy 및 로드밸런싱 이해하기

https://www.youtube.com/watch?v=1WfdUtMxTLE&list=WL


엔진엑스(Nginx)와 아파치(Apache)의 비교: 왜 엔진엑스를 사용할까?

웹서버 관련 개발자라면 한 번쯤 들어봤을 법한 엔진엑스(Nginx)아파치(Apache). 특히, 한국에서 자주 듣는 질문 중 하나가 "둘 중 뭐가 더 빠르고 좋은가?"라는 것이다. 점유율 통계에서 알 수 있듯, Nginx가 Apache보다 높은 점유율을 차지하고 있는데, 그 이유와 장점에 대해 정리해보자.


1. 엔진엑스의 탄생 배경

  • 엔진엑스는 러시아 개발자가 아파치의 성능 한계를 직접 겪으며 개발한 것
  • 아파치의 구형 소켓 I/O 방식은 트래픽이 많은 환경(예: 동시 접속 10,000 이상)에서 성능 문제가 발생했고, 이를 해결하기 위해 엔진엑스를 만들게 되었다.
  • 결과적으로, 엔진엑스는 대규모 트래픽을 처리해야 하는 웹사이트에 적합하다.

2. 엔진엑스가 넷플릭스에서 사용되는 이유

  • 넷플릭스와 같은 대규모 트래픽 사이트는 리버스 프록시로드 밸런싱 기능을 필수적으로 활용하며, 엔진엑스는 이러한 기능을 간단하고 효율적으로 제공한다.
  • 넷플릭스 외에도 여러 대형 기업에서 엔진엑스를 사용하며, 엔진엑스의 성능과 신뢰성을 증명한다.

3. 엔진엑스 설정 및 활용

  • 엔진엑스는 간단한 설정 파일 수정으로 리버스 프록시로드 밸런싱을 구현할 수 있다.
  • 주요 설정 구조:
    • http 섹션: 웹서버 관련 설정
    • server 블록: 도메인/IP 설정
    • location 블록: 특정 URL 경로에 대한 설정
    • upstream 섹션: 로드 밸런싱을 위한 백엔드 서버 설정
  • 설정 후 문법 검사 및 서버 리로드를 통해 바로 적용 가능하다.

4. 로드 밸런싱 구현

  • 간단한 코드 작성으로 다수의 서버를 관리하며, 요청을 분산 처리할 수 있다.
  • 테스트 결과:
    • 메인 서버 IP로 접속 후 새로고침을 반복하면, 각각의 백엔드 서버에서 제공하는 HTML이 로드됨을 확인할 수 있다.

5. 엔진엑스의 장점

  • 간결하고 강력한 설정: 적은 코드로 복잡한 기능 구현 가능
  • 대규모 트래픽 처리: 고성능 아키텍처로 동시 접속 처리에 탁월
  • 풍부한 문서와 자료: 공식 사이트 및 번역된 문서(예: 엔진엑스 스토어) 제공

참고 

  • 웹서버 엔지니어라면 엔진엑스 하나만 잘 알아도 전문성을 확보할 수 있다
  • 빠르고 강력한 성능 덕분에 엔진엑스는 현대 웹 개발에서 가장 핫한 선택지 중 하나임

'네트워크' 카테고리의 다른 글

[네트워크] 리버스 프록시에서의 캐싱  (0) 2024.12.29
HTTPS와 SSL/TLS 암호화  (0) 2024.12.22
[네트워크] 포트번호  (0) 2024.12.15
[네트워크] Redirect 와 Forward  (0) 2024.12.15
[네트워크] localhost 와 127.0.0.1  (0) 2024.12.12