Nginx로 알아보는 웹 서버

웹 서버(Web Server)란?

기본적으로 웹 어플리케이션이 동작하는 과정은 다음과 같다. 1번부터 아래로 내래가면서 요청을 하고, 다시 1번으로 올라오면서 응답이 이뤄진다.

  1. 클라이언트(웹 브라우저)
  2. 웹 서버(Web Server)
  3. 어플리케이션 서버(Web Application Server)
  4. 데이터베이스

여기서 3번의 어플리케이션 서버의 경우 외국에서는 AP 서버라고 부르는 경우가 많다고 한다. 하지만 한국에서는 보통 WAS(Web Application Server)라고 부르는 경우가 많다.

여기서 웹 서버(Web Server)가 하는 역할은 http(s) 프로토콜을 이용해 html, css, js, image 등의 정적인 파일을 제공하는 것이다. 이외에 로드 밸런싱, 보안, 동적 콘텐츠 이용시 WAS와 연결 등의 역할도 담당한다.

웹 서버 종류

대표적인 웹 서버 종류는 다음과 같다.

  • Apache(아파치)
  • Gunicorn(지유니콘)
  • Nginx(엔진엑스)

위 예시에 언어별 대표적 웹 서버를 적었다. Java에서 많이 사용하는 Apache, Python에서 많이 사용하는 Gunicorn, 마지막으로 Nginx는 언어를 따로 가리지는 않고 범용적으로 많이 사용된다.

Why Nginx?

왜 Nginx가 범용적으로 많이 사용될까?

1. 높은 성능

Nginx는 Node js와 비슷하게 이벤트 루프 방식인 비동기 I/O처리 방식을 이용하기 때문에 다수의 클라이언트 요청을 빠르게 처리할 수 있기 때문에 성능이 좋다고 평가받는다.

2. 높은 확장성

Nginx는 자체적으로 로드 밸런싱 기능을 제공한다. 이를 통해 서버를 여러개 만들어도 알아서 트래픽 분산을 해주기 떼문에 확장에 용이하다.

3. 낮은 메모리 사용량

Nginx는 메모리 사용량이 매우 적기 때문에 서버 자원을 효율적으로 사용하는데 도움을 준다.

4. 보안 지원

Nginx는 최신 프토콜인 HTTP/2를 지원하고, SSL/TLS 설정도 지원하여 HTTPS 프로토콜도 지원한다. SSL의 경우 let’s encrypt를 이용해 매우 간단하게 인증서 발급과 갱신 자동화도 가능하다.

results matching ""

    No results matching ""