[Network] Nginx 란 무엇인가?

ChatGPT 에 개인 DB 를 이용하면서, 또 VPN 접속 Https 를 이용하기 위해서 Nginx 라는 프로그램을 사용하였다. 프록시 서버, 리버스 프록시 서버를 구성하는데 꼭 필요한 웹 소프트웨어인 것 같은데, 어떠한 특징이 있고 어떤 방식으로 프록시, 리버스 프록시 서버를 구성하는지 알아보도록 하자.
1. Nginx란 무엇인가
Nginx 는 가볍고 빠른 웹 서버 소프트웨어이다. 사용자의 요청에 대해 정해진 html 파일을 던져주는 정적 웹 서버로 사용할 수 있을 뿐만 아니라, 프록시 서버나 리버스 프록시 서버로 동작할 수 있는 강력한 기능을 갖추고 있다.
원래는 대규모 트래픽을 효율적으로 처리하기 위해 설계되었고, 이벤트 기반 아키텍처 덕분에 적은 리소스로 많은 동시 연결을 처리하는 데 강점이 있다.
그렇다면 프록시 서버, 리버스 프록시 서버는 무엇일까?
2. 프록시 서버와 리버스 프록시 서버 개념
2-1. 프록시 서버(Forward Proxy)
- 클라이언트와 인터넷 사이에 위치하여, 클라이언트를 대신해 외부 서버에 요청을 전달한다.
- 주로 클라이언트의 IP를 숨기거나, 캐싱·접속 제어·보안 필터링에 사용된다.
- 예: 내가 마트에 가지 않고, 누군가에게 부탁해서 우리 집 까지 물건을 사오도록 부탁한다.
-> 마트에서는 내가 물건을 사는 것을 모름( 클라이언트 정보가 숨겨짐)
-> 프록시 서버는 내가 방문한 사이트 기록을 숨기고 싶다, IP 우회 접속을 하고 싶다, 내부망에서 인터넷 접속을 통제하고 싶다. 등의 목적이 있을 경우 사용한다.
2-2. 리버스 프록시 서버(Reverse Proxy)
- 인터넷 사용자와 내부 서버 사이에 위치하여, 외부 요청을 내부 서버에 전달하고 응답을 대신 돌려준다.
- 주로 로드 밸런싱, SSL 종료(HTTPS 처리), 캐싱, 보안(내부 서버 IP 숨김)에 사용된다.
- 예: 손님이 집으로 직접 경유해서 오지 않고, 경비실을 통해 안내를 받아 집 까지 오는 경우이다.
-> 손님에게 아파트 구조에 대해 정확히 모르게 한다.( 서버 IP 를 정확히 알 수 없다)
-> 내부 서버를 외부에 직접 노출하고 싶지 않다, 여러 서버에 부하를 분산하고 싶다. 등의 목적이 잇을 경우에 사용한다.
3. Nginx가 프록시 역할을 할 수 있는 이유
Nginx는 HTTP, HTTPS, TCP, UDP 프로토콜에 대해 요청을 받아 다른 서버로 전달할 수 있는 Proxy 모듈을 내장하고 있다.
즉, 단순히 웹 페이지를 서비스하는 것뿐만 아니라, 클라이언트 → Nginx → 백엔드 서버 구조를 구현할 수 있다.
주요 기능
- proxy_pass — 요청을 다른 서버로 전달하는 핵심 지시어
location / { proxy_pass http://192.168.0.10:8080; } - 로드 밸런싱 — 여러 서버에 요청을 분산 처리
- round-robin, least connections, ip-hash 등 다양한 방식 제공
- 캐싱 — 자주 요청되는 응답을 저장하여 빠르게 전달
- SSL 종료 — 백엔드 서버 대신 HTTPS 인증서 처리
- 압축·최적화 — gzip 압축, HTTP/2 지원으로 전송 효율 향상
- 보안 기능 — 내부 서버의 IP, 포트, 구조를 외부에 노출시키지 않음
4. Nginx를 프록시 서버로 사용할 때 장점
- 고성능 — 이벤트 기반 구조로 수만 개 연결 처리 가능
- 유연한 설정 — 웹 서버, 프록시, 로드 밸런서 역할 모두 가능
- 경량화 — 낮은 메모리·CPU 사용량
- 보안 강화 — 내부 서버의 직접 노출 방지
- 확장성 — 트래픽 증가 시 서버 추가 및 부하 분산 용이
5. 마무리
Nginx는 단순히 정적 파일을 제공하는 웹 서버에 그치지 않는 녀석이였다. HTML, CSS, JavaScript와 같은 정적 자원을 빠르게 서비스할 수 있을 뿐만 아니라, HTTP·HTTPS·TCP·UDP 등 다양한 프로토콜의 요청을 다른 서버로 전달하는 기능을 내장하고 있다. 이러한 능력 덕분에 Nginx는 서버와 서버, 혹은 사용자와 서버 사이에 위치하여 요청을 중계할 수 있으며, 상황에 따라 프록시 서버나 리버스 프록시 서버로 동작할 수 있었던 것 이였다 즉, Nginx는 웹 서버이면서도 트래픽을 효율적으로 관리하고 보안을 강화하는 인프라 핵심 구성 요소가 될 수 있다.