나만의 학습 기록

최종 목적은 기술 블로그💩

백엔드 공부

웹 서버 - Nginx와 Apache로 이해하는 요청 처리 구조

밈밍민믹 2026. 6. 1. 12:18

안녕하세요. 눈 깜빡할 사이에 벌써 6월이네요.

이번 내용을 작성하고나면 확장성 있는 구축에 대해 작성해야하지만 면접이 잡혀서 목요일에 다시 재개하도록 하겠습니다. 작성했던 블로그글이랑 이것저것 다 확인하기 위해서는 조금 시간이 걸릴 것 같더라고요.

자 그럼 웹 서버 공부를 시작하겠습니다.


웹 서버

웹 서버는 클라이언트가 요청한 정적인 컨텐츠를 HTTP를 통해 제공해주는 서버입니다.

가장 기본적인 역할은 HTML, CSS, JavaScript, 이미지 파일 같은 정적 리소스를 클라이언트에게 제공하는 것입니다. 

 

예를 들어 사용자가 웹 사이트에 접속했을 때 브라우저가 'index.html', 'style.css', 'main.js' 파일을 요청하면 웹 서버는 해당 파일을 찾아 응답합니다.

 

또한 웹 서버는 단순히 파일만 제공하는 것이 아니라, 요청을 애플리케이션 서버로 전달하는 리버스 프록시 역할도 할 수 있습니다.

 

웹서버와 WAS의 차이

웹 서버와 WAS는 모두 서버 요청 처리에 사용되지만 역할이 다릅니다.

웹 서버는 주로 정적 파일을 제공하거나 클라이언트 요청을 다른 서버로 전달하는 역할을 합니다. 반면 WAS는 비즈니스 로직을 실행하고, 데이터베이스와 연동해 동적인 응답을 생성하는 역할을 합니다.

구분 웹 서버 WAS
주요 역할 정적 파일 제공, 리버스 프록시 비즈니스 로직 처리
처리 대상 HTML, CSS, JS, 이미지 API 요청, DB 조회, 인증 처리
대표 예시 Nginx, Apache Tomcat, Spring Boot 내장 Tomcat
응답 방식 파일 또는 요청 전달 동적 데이터 생성
사용 목적 빠른 정적 응답, 요청 분산, 보안 설정 서비스 로직 실행

 

웹 서버가 하는 일

웹 서버는 다음과 같은 역할을 수행할 수 있습니다.

  1. 정적 파일 제공
    • HTML, CSS, JS, 이미지 파일 응답
  2. 리버스 프록시
    • 클라이언트 요청을 내부 애플리케이션 서버로 전달
  3. 로드 밸런싱
    • 여러 서버로 요청을 분산
  4. SSL/TLS 처리
    • HTTPS 인증서 적용 및 암호화 통신 처리

 

정적 파일 제공

정적 파일은 서버에서 별도의 비즈니스 로직을 실행하지 않고 그대로 응답할 수 있는 파일입니다.  

예를 들어 HTML, CSS, JavaScript, 이미지 파일이 이에 해당합니다. 웹 서버는 이러한 정적 파일을 빠르게 제공하는데 적합합니다.

 

프론트엔드 프로젝트를 빌드하면 정적 파일이 생성됩니다. 이 파일들을 웹 서버의 특정 디렉터리에 배치하면 웹 서버는 클라이언트 요청에 따라 해당 파일을 응답할 수 있습니다.

 

리버스 프록시

리버스 프록시는 클라이언트 요청을 대신 받아 내부 서버로 전달하는 구조입니다.

클라이언트는 내부 애플리케이션 서버의 주소를 직접 알 필요 없이 웹 서버 주소로 요청을 보냅니다. 웹 서버는 요청 경로나 도메인에 따라 적절한 내부 서버로 요청을 전달합니다.

 

 

 

https://example.com/api/posts

Nginx

http://localhost:8080/api/posts

예를 들어 외부 사용자는 'https://example.com/api/posts'로 요청하지만, 실제 Spring Boot 애플리케이션은 서버 내부의 'localhost:8080'에서 실행될 수 있습니다. 이때 Nginx가 외부 요청을 받아 내부 애플리케이션 서버로 전달합니다.

 

로드 밸런싱

로드 밸런싱은 여러 서버에 요청을 분산하는 기능입니다.

트래픽이 많아지면 하나의 애플리케이션 서버가 모든 요청을 처리하기 어려울 수 있습니다. 이때 웹 서버나 로드 밸런서를 사용해 여러 서버로 요청을 나누어 보낼 수 있습니다.

 

이렇게 하면 특정 서버 하나에 요청이 몰리는 것을 줄이고, 서버 장애가 발생했을 때 다른 서버로 요청을 처리하도록 구성할 수도 있습니다.

 

Nginx란?

Nginx는 대표적인 웹 서버 중 하나로 정적 파일 제공, 리버스 프록시, 로드 밸런싱, SSL/TLS 처리 등에 사용됩니다.

 

Nginx는 이벤트 기반 구조를 사용해 많은 동시 연결을 효율적으로 처리하는데 강점이 있습니다. 이러한 특징 때문에 정적 파일 제공이나 리버스 프록시 서버로 많이 사용됩니다.

 

Apache란?

Apache HTTP Server는 오래전부터 널리 사용되어 온 대표적인 웹 서버입니다.

 

Apache는 모듈 기반 구조를 가지고 있어 다양한 기능을 확장하기 쉽고, 설정 방식이 유연하다는 장점이 있습니다. 'htaccess' 파일을 통해 디렉터리 단위 설정을 적용할 수 있는 점도 Apache의 특징입니다.

 

다만 동시 연결이 많은 환경에서는 설정 방식과 동작 모델에 따라 Nginx보다 상대적으로 많은 자원을 사용할 수 있습니다.

 

Nginx와 Apache의 차이

Nginx는 많은 동시 연결을 효율적으로 처리하고 리버스 프록시로 사용하기 좋아 현대적인 배포 환경에서 자주 사용됩니다. Apache는 모듈 기반 확장성과 유연한 설정이 강점이며, 오랫동안 다양한 웹 환경에서 사용되어 왔습니다.

구분 Nginx Apache
구조 이벤트 기반 프로세스/스레드 기반 중심
강점 많은 동시 연결 처리, 리버스 프록시, 정적 파일 제공 모듈 확장성, 유연한 설정
정적 파일 처리 빠르고 효율적 가능하지만 Nginx가 자주 선택됨
동적 요청 처리 주로 백엔드 서버로 프록시 모듈을 통해 직접 처리 가능
설정 방식 중앙 설정 중심 .htaccess 등 디렉터리별 설정 가능
사용 사례 리버스 프록시, 로드 밸런서, 정적 파일 서버 전통적인 웹 서버, PHP 환경 등

오늘은 웹서버 Nginx와 Apache에 대해 간단하게 알아봤습니다. 수고하셨습니다.