정적 파일을 돌려주는 웹 서버와 코드를 실행해 동적 응답을 만드는 WAS 를 가른다. 실제 구성은 둘을 겹쳐 쓰는 경우가 많다 — 앞단의 Nginx 가 TLS 와 정적 파일을 받고, 뒤의 Tomcat 이 애플리케이션을 실행한다.
| 항목 | 웹 서버(Web Server) | 웹 애플리케이션(Web Application) |
| 역할 | HTTP 요청 처리, 정적 콘텐츠 제공 | 동적 콘텐츠 생성, 사용자 요청 처리 |
| 콘텐츠 | HTML, CSS, JS, 이미지 등 정적 파일 | DB 연동, 사용자 맞춤 데이터, 동적 페이지 |
| 로직 처리 | 거의 없음 | 비즈니스 로직 수행 |
| 예시 | Apache, Nginx, IIS | WordPress, Django, Express, Rails |
| 성능 | 빠름, 정적 파일 최적화 | 서버 로직 복잡도에 따라 변동 |
| 배치 구조 | 단독 서버 가능 | 일반적으로 웹 서버 + 앱 서버 조합 |
| 특징 | 정적 콘텐츠 전달 최적화 | 동적 처리, 사용자 상호작용 중심 |
| 서버 이름 | 특징 | 공식 URL |
| Apache HTTP Server | 가장 오래된 오픈소스 웹 서버, 모듈 기반, 유연성 높음, 동적 콘텐츠 지원 | https://httpd.apache.org/ |
| Nginx | 이벤트 기반, 고성능, 정적 콘텐츠 및 리버스 프록시/로드 밸런서에 최적화 | https://nginx.org/ |
| Caddy | 자동 HTTPS 지원, 설정 간단, Go 기반, 모던 웹 환경 최적 | https://caddyserver.com/ |
| Lighttpd | 경량 웹 서버, 메모리 사용 적음, 고속 처리 가능 | https://www.lighttpd.net/ |
| OpenResty | Nginx 기반 + Lua 스크립트 확장, API 서버 및 리버스 프록시에 특화 | https://openresty.org/ |
| Cherokee | GUI 기반 설정 지원, 경량 웹 서버, 정적/동적 콘텐츠 처리 | http://cherokee-project.com/ |
| Hiawatha | 보안 중심 웹 서버, 쉬운 설정, 스캔 공격 방어 내장 | https://www.hiawatha-webserver.org/ |
| 언어/플랫폼 | 이름 | 특징 | URL |
|---|---|---|---|
| Java | Apache Tomcat | 서블릿/JSP 기반 경량 WAS, Jakarta EE 일부 지원 | https://tomcat.apache.org/ |
| Java | WildFly (구 JBoss AS) | 완전한 Jakarta EE 스택, 엔터프라이즈급 | https://www.wildfly.org/ |
| Java | Payara Server | GlassFish 기반, Jakarta EE 지원, 커뮤니티/상용 | https://www.payara.fish/ |
| Java | GlassFish | Jakarta EE Reference Implementation, 개발/테스트용 | https://glassfish.org/ |
| Java | Jetty | 경량, 임베디드 서버로도 쓴다 | https://jetty.org/ |
| Node.js | Express.js | Node.js 경량 웹 프레임워크, 간단한 WAS 역할 | https://expressjs.com/ |
| Node.js | Fastify | 고성능, 플러그인 기반, 비동기 최적화 | https://fastify.dev/ |
| Node.js | Koa.js | Express 창시자가 만든 최신 Node.js 웹 프레임워크 | https://koajs.com/ |
| Python | Django | 풀스택 프레임워크, WSGI · ASGI | https://www.djangoproject.com/ |
| Python | Flask | 경량 프레임워크, WSGI 기반 | https://flask.palletsprojects.com/ |
| Python | FastAPI | 비동기, 고성능, ASGI 기반 | https://fastapi.tiangolo.com/ |
| PHP | PHP-FPM | FastCGI Process Manager, Nginx · Apache 와 연동 | https://www.php.net/manual/en/install.fpm.php |
| PHP | Laravel + PHP-FPM | PHP 프레임워크와 WAS 구조 | https://laravel.com/ |
| Go | Fiber · Gin | Go 기반 경량 WAS, REST API 최적화 | https://gofiber.io/ · https://gin-gonic.com/ |
| 항목 | Apache | Nginx |
| 기본 개념 | 1995년 시작, 모듈 중심 웹 서버 | 2004년 시작, 이벤트 기반 고성능 웹 서버 |
| 처리 방식 | 프로세스/스레드 기반(MPM: prefork, worker, event) | 비동기 이벤트 기반, 단일/소수 워커 프로세스 |
| 정적 파일 처리 | 상대적으로 느림 | 매우 빠름 |
| 동적 콘텐츠 처리 | 서버 내 mod_php 등 모듈로 직접 처리 | FastCGI(PHP-FPM) 등 외부 프로세스 사용 |
| 리버스 프록시/로드 밸런서 | 모듈(mod_proxy) 필요, 설정 복잡 | 기본 내장, 성능 우수 |
| 설정 구조 | httpd.conf, .htaccess 지원, 모듈 다양 | nginx.conf, conf.d/*.conf, 디렉터리별 설정 불가 |
| 장점 | - 유연성 높음 - PHP 등 동적 처리 간편 - 풍부한 모듈 | - 높은 동시 접속 처리 - 빠른 정적 파일 처리 - 안정적/저메모리 - 기본 리버스 프록시/로드밸런서 |
| 단점 | - 동시 접속 시 메모리 사용 많음 - 정적 파일 느림 | - .htaccess 지원 X - 동적 처리 외부 프로세스 필요 - 모듈 풍부성 Apache보다 낮음 |
| 사용 추천 | PHP 기반 CMS, 모듈 활용 필요 시 | 정적 파일, 리버스 프록시, 대규모 동시 접속 서비스 |