nginx
nginx(엔진엑스)는 웹 파일을 내주고, 들어온 요청을 뒤쪽 프로그램에 나눠 넘겨 주는 웹서버예요. 앱 앞단의 리버스 프록시로 많이 써요.
목차 보기
nginx 는 웹 파일을 내주고, 들어온 요청을 뒤쪽 프로그램에 나눠 넘겨 주는 웹서버예요. '엔진엑스'라고 읽어요. 큰 건물 1층 안내 데스크에 비유할 수 있어요. 손님을 먼저 맞고, 간단한 건 바로 처리하고, 나머지는 알맞은 층으로 보내요. 무료 오픈소스이고 공식 사이트에 따르면 이고르 시소예프가 처음 만들었어요.
이 글에 나오는 말
- 리버스 프록시는 서버 앞에 서서 요청을 대신 받아 뒤쪽 서버에 넘겨 주는 중간 역할이에요.
- 로드밸런싱은 요청을 여러 서버에 고르게 나눠 보내는 일이에요.
- 워커(worker)는 nginx 안에서 실제로 요청을 처리하는 일꾼 프로세스예요.
- 응답 헤더는 서버가 내용과 함께 보내는 꼬리표예요. 서버 이름이 여기 찍혀요.
nginx 는 무슨 일을 하나요?
세 가지 일을 많이 맡아요. 첫째, HTML·이미지 같은 파일을 바로 내줘요. 둘째, Node.js·파이썬 앱 앞에 서서 요청을 넘겨 줘요. 셋째, 여러 대의 서버에 요청을 나눠 보내요. 공식 사이트는 nginx 를 HTTP 서버, 리버스 프록시, 메일 프록시, TCP/UDP 프록시라고 소개해요.
판은 둘로 나와요. 새 기능이 먼저 들어가는 mainline 과, 고친 것만 모아 내는 stable 이에요. 2026년 10월 29일 내려받기 페이지 기준 mainline 은 1.31.8(10월 21일), stable 은 1.30.6(10월 14일)이에요.
리버스 프록시는 뭐예요?
내 앱이 3000번 포트에서 돈다고 해 볼게요. 방문자가 내사이트:3000 으로 들어오게 하는 건 불편하고 위험해요. 그래서 nginx 가 80·443 에서 요청을 받고, 뒤쪽 3000번으로 넘겨요. HTTPS 인증서 처리, 이미지 같은 파일 전달, 느린 손님 응대는 nginx 가 맡아요. 앱은 자기 일에만 집중해요.
아파치와 뭐가 달라요?
| nginx | 아파치(httpd) | |
|---|---|---|
| 일하는 방식 | 적은 수의 일꾼이 많은 연결을 돌려 가며 처리해요 | MPM 에 따라 프로세스·스레드를 늘려 나눠 맡아요 |
| PHP 같은 프로그램 | PHP-FPM 같은 다른 프로그램에 넘겨요 | 모듈로 직접 실행할 수도 있어요 |
| 폴더별 설정(.htaccess) | 없어요. 본 설정만 고쳐요 | 있어요 |
| 많이 쓰는 자리 | 앱 앞단, 파일 전달, 로드밸런서 | 웹 호스팅, 워드프레스 |
둘 중 하나만 고를 필요는 없어요. nginx 를 앞에, 아파치를 뒤에 두는 구성도 흔해요. 아파치 이야기는 아파치 글에 있어요.
직접 띄워 보면 어떻게 보여요?
2026년 10월 29일 밤, 사무실 PC 의 Docker 에서 공식 이미지 nginx:1.30.6 을 띄웠어요.
$ docker run --rm -d -p 18091:80 nginx:1.30.6 $ curl -I http://127.0.0.1:18091/ HTTP/1.1 200 OK Server: nginx/1.30.6 Content-Type: text/html Content-Length: 896
시작부터 첫 응답까지 5번 쟀더니 가운데 값이 560ms 였어요. 이미지 크기는 약 64MB, 알파인판은 약 26MB 였어요. 그런데 프로세스를 세어 보니 33개였어요. 관리자 1개와 일꾼 32개예요. 기본 설정 worker_processes auto 가 CPU 수만큼 일꾼을 띄우기 때문이에요(core 모듈 문서). 이 PC 는 CPU 가 32개로 보여요.
2026-10-29, 사무실 PC Docker, 공식 이미지 nginx:1.30.6 · httpd:2.4.69, docker stats
일꾼을 2개로 줄이니 메모리가 24.7MiB 에서 3.4MiB 로 내려갔어요. 작은 서버에서는 CPU 수에 맞게 두면 돼요. 서버 CPU 가 1~2개면 auto 로 둬도 1~2개만 떠요.
아파치와 같은 조건에서 재 보니
두 서버 모두 CPU 2개로 묶고, 같은 896바이트 파일을 2만 번 요청했어요(동시 100개, 도구 ab). 5번씩 잰 가운데 값은 nginx 가 1초에 24,634번, 아파치가 9,248번이었어요. 요청을 다 받은 뒤 메모리는 nginx 3.5MiB, 아파치 15.6MiB 였어요. 둘 다 기본 설정이라, 손보면 차이는 달라질 수 있어요.
5번 잰 값 모두 보기
| 서버 (CPU 2개, 같은 896B 파일) | 1회 | 2회 | 3회 | 4회 | 5회 | 가운데 값 |
|---|---|---|---|---|---|---|
| nginx 1.30.6 (일꾼 2개) | 20,997 | 25,707 | 24,990 | 24,633 | 24,196 | 24,634 |
| 아파치 2.4.69 (기본값) | 9,248 | 8,517 | 8,617 | 9,383 | 9,886 | 9,248 |
리버스 프록시도 직접 해 봤어요
아파치 컨테이너를 뒤에 두고, nginx 가 앞에서 받아 넘기게 했어요. 설정은 이게 전부예요.
server {
listen 80;
server_tokens off; # 헤더에서 버전 숨기기
location / {
proxy_pass http://cg-back:80; # 뒤쪽 아파치
proxy_set_header Host $host;
}
}
$ nginx -t
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ curl -i http://127.0.0.1:18093/
HTTP/1.1 200 OK
Server: nginx
<title>It works! Apache httpd</title>
헤더는 Server: nginx 인데 내용은 아파치 기본 페이지예요. 방문자는 앞의 nginx 만 보고, 뒤는 몰라요. 버전 숫자도 사라졌어요. 뒤쪽을 Node.js 앱 주소로 바꾸면 그대로 앱 앞단이 돼요. 설정 항목은 proxy 모듈 문서에 있어요.
자주 하는 오해
"nginx 로 바꾸면 사이트가 무조건 빨라져요"
위 시험은 파일 하나를 내주는 속도예요. 페이지를 만드는 PHP·데이터베이스가 느리면 nginx 로 바꿔도 크게 달라지지 않아요.
"설정 바꾸면 그냥 재시작하면 돼요"
문법이 틀린 채 재시작하면 사이트가 멈춰요. 먼저 nginx -t 로 검사하고, nginx -s reload 로 다시 읽게 하세요. 접속은 끊기지 않아요.
"502 오류는 nginx 고장이에요"
502 는 nginx 가 뒤쪽 앱에서 답을 못 받았다는 뜻이에요. 대개 앱이 꺼졌거나 포트가 틀린 경우예요. 앱 상태부터 보세요.
퓨쳐인프라에서는
퓨쳐인프라 가상서버에 우분투나 데비안을 고르면 apt install nginx 로 바로 설치할 수 있어요. 콘솔 만들기 화면(2026년 10월 29일)에는 Ubuntu 24.04 LTS, Debian 13, Alpine 3.23 등이 있어요. 기본 방화벽은 모든 포트가 닫혀 있어요. nginx 앞단이라면 80·443 만 열고, 뒤쪽 앱 포트는 닫아 두면 돼요.
서버는 만들면 약 40초 뒤 주소와 HTTPS 가 같이 준비돼요. 인증서는 90일마다 자동으로 갱신돼요. 요금은 Nano(1코어·1GB) 시간당 12원부터예요(2026년 10월 29일 요금표, 부가세 포함).
자주 묻는 질문
nginx 설정 파일은 어디 있어요?
보통 /etc/nginx/nginx.conf 가 본 파일이에요. 사이트별 설정은 /etc/nginx/conf.d/ 나 우분투의 /etc/nginx/sites-available/ 에 둬요.
mainline 과 stable 중 뭘 써요?
운영 서버는 stable 을 많이 써요. 새 기능이 꼭 필요하면 mainline 을 써요. 우분투 기본 저장소 판은 둘보다 조금 늦을 수 있어요.
내 서버의 nginx 버전은 어떻게 봐요?
nginx -v 를 치면 나와요. 밖에서는 curl -I 의 Server 줄로 볼 수 있어요. server_tokens off 면 숫자 없이 nginx 만 보여요.
nginx 와 아파치를 같이 써도 돼요?
돼요. nginx 가 80·443 에서 받고 아파치를 다른 포트에 두는 구성이 흔해요. 위 리버스 프록시 시험이 그 모양이에요.
관련 용어
아파치 · 프록시 · 502 에러 · HTTPS · SSL 인증서 · 포트 · CDN
- 글쓴이는 서순명(솔리드그루 이사)이에요. 솔리드그루는 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 서비스 퓨쳐인프라를 운영해요. 2026년 10월 29일에 썼어요.
- 운영사는 솔리드그루예요. 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계도 있어요. 사무실 PC(서울, Docker Desktop 29.1.3)에서 공식 Docker 이미지로 잰 값이에요. 부하 시험은 같은 PC 안에서 보낸 요청이라 인터넷 속도와 다르고, nginx 는 일꾼 수만 2개로 바꿨어요. 버전·공개일은 nginx.org 에서 확인했어요.
- 이해관계를 밝혀 둬요. 퓨쳐인프라 가상서버를 운영하는 회사가 쓴 글이고, 끝에 자사 안내가 있어요. nginx 개발진·F5 와는 관계가 없어요.
연관 서비스
많이 본 글
-
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글
로그인하면 댓글을 남길 수 있습니다.