본문 바로가기
개발 공부/서버

[서버 성능 최적화] 웹서버 튜닝, Nginx와 Apache에서 성능을 끌어올리는 설정법

by 악마의 개발자 2025. 5. 28.
반응형

서버 성능 최적화


💡 “서버 세팅은 했는데, 뭔가 느린 느낌… 뭘 바꿔야 하지?”

서버 자체는 빠른데 웹 요청 응답이 느리다?
→ 웹서버(Nginx, Apache)의 기본 설정만 바꿔도 체감 속도는 확연히 달라집니다.

Nginx 한 줄 설정으로 응답 속도를 30~50% 줄일 수 있어요!


🌐 대표 웹서버 두 가지

웹서버 특징
Nginx 비동기 이벤트 기반, 빠르고 가벼움, 정적 자원 최적
Apache 멀티 프로세스 기반, 다양한 모듈, 유연함
 

🧱 1. Nginx 최적화 설정 포인트

✅ 1. worker_processes

worker_processes auto;
  • 서버 CPU 코어 수에 맞게 워커 수 자동 조절
  • 병렬 요청 처리 능력 향상

✅ 2. keepalive_timeout

keepalive_timeout 15;
  • 연결을 얼마나 오래 유지할지 설정
  • 너무 짧으면 매번 재연결 (느려짐)
  • 너무 길면 리소스 낭비
    → 보통 10~20초 사이 권장

✅ 3. gzip 압축

gzip on;
gzip_types text/plain text/css application/json application/javascript;
  • 응답 데이터를 압축해서 전송
  • 브라우저가 자동 해제
    → JS/CSS/HTML 등은 50% 이상 용량 감소 가능

✅ 4. client_max_body_size

client_max_body_size 10M;
  • 클라이언트가 업로드할 수 있는 최대 파일 크기
  • 파일 업로드 기능 있을 경우 반드시 설정!

✅ 5. caching + expires

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
  expires 30d;
  access_log off;
}
  • 정적 자원 캐싱 유도
  • 서버 부하 ↓, 브라우저 로딩 속도 ↑

🧱 2. Apache 성능 최적화 설정

✅ 1. MPM 방식 선택

  • Apache는 MPM (Multi-Processing Module)에 따라 방식이 다름
MPM 방식 특징
prefork 안정성 중시, 비동기 처리 불가
worker 스레드 기반, 적당한 성능
event 비동기 지원, 최신 Apache 기본 설정 (추천)
a2enmod mpm_event

✅ 2. KeepAlive 설정

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
  • 다중 요청 시 지속 연결 유지로 속도 향상

✅ 3. mod_deflate (압축)

AddOutputFilterByType DEFLATE text/html text/css application/javascript
  • gzip과 유사, 서버 응답을 압축해 트래픽 절감

🔧 실무 최적화 팁 요약

항목 설정 예시 효과
gzip 압축 gzip on; 응답 크기 ↓, 속도 ↑
keep-alive keepalive_timeout 15; 연결 유지로 요청 수 ↓
worker 수 worker_processes auto; CPU 코어 최적 활용
캐시 설정 expires 30d; 정적 자원 요청 최소화
압축 모듈 mod_deflate 트래픽 절약
 

🧠 정리 한마디!

웹서버는 단순한 전달자 같지만,
속도와 효율에 큰 영향을 주는 핵심 노드입니다.

 

✔️ 요약

  • Nginx는 병렬 처리와 캐싱에 강하고,
  • Apache는 모듈 기반 유연성이 강점
  • 실무에서는 기본 설정을 조금만 튜닝해도 큰 차이가 납니다!
반응형