100===Dev Ops/Nginx

Nginx의 모든 것: 가볍고 강력한 웹 서버 🚀

블로글러 2024. 11. 17. 08:57

안녕하세요! 오늘은 현대 웹 아키텍처의 핵심 요소인 Nginx에 대해 자세히 알아보겠습니다.

Nginx가 뭔가요? 🤔

커피숍을 상상해보세요:

  • 손님들(클라이언트)이 주문(요청)을 하면
  • 매장 직원(Nginx)이 효율적으로 주문을 처리하고 분배합니다
  • 이때 직원은 주방(백엔드 서버)에 부하가 걸리지 않도록 똑똑하게 일을 분배하죠!

Nginx는 바로 이런 역할을 하는 웹 서버/리버스 프록시 서버입니다.

주요 특징 ⭐

1. 이벤트 기반 아키텍처

전통적 서버: 손님 1명당 직원 1명 배정
Nginx: 한 명의 직원이 여러 손님 응대 가능!

2. 비동기 처리

events {
    worker_connections 1024; # 동시 처리 가능한 연결 수
}

3. 가벼운 리소스 사용

  • Apache 대비 메모리 사용량 40% 절감
  • CPU 사용률도 현저히 낮음

주요 기능 🛠

1. 정적 파일 서빙

location /images/ {
    root /var/www/static;
    expires 30d; # 브라우저 캐싱 30일
}

2. 로드 밸런싱

upstream backend {
    server backend1.example.com:8080;
    server backend2.example.com:8080;
    server backend3.example.com:8080;
}

3. SSL/TLS 터미네이션

server {
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
}

4. URL 리라이팅

location /old-page {
    rewrite ^/old-page(.*)$ /new-page$1 permanent;
}

실전 설정 예시 💻

기본 웹 서버 설정

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html;
        }

        # gzip 압축 활성화
        gzip on;
        gzip_types text/plain text/css application/json;

        # 에러 페이지
        error_page 404 /404.html;
    }
}

API 리버스 프록시 설정

location /api/ {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

성능 최적화 팁 🔧

  1. 워커 프로세스 최적화

    worker_processes auto;
    worker_rlimit_nofile 65535;
  2. 버퍼 설정

    client_body_buffer_size 10K;
    client_max_body_size 8m;
  3. 캐싱 설정

    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;

주의사항 ⚠️

  1. 설정 파일 문법

    • 세미콜론(;) 누락 주의
    • 중괄호({}) 짝 맞추기
  2. 보안 설정

    • 버전 정보 숨기기
    • 불필요한 HTTP 메소드 차단
  3. 로그 관리

    • 로그 로테이션 설정
    • 적절한 로그 레벨 설정

마치며 🎁

Nginx는 현대 웹 서비스에서 없어서는 안 될 중요한 도구입니다. 적절한 설정만으로도 서비스의 성능과 안정성을 크게 향상시킬 수 있죠!


참고자료:

728x90

'100===Dev Ops > Nginx' 카테고리의 다른 글

리버스 프록시 (Reverse Proxy) 완벽 가이드 🌐  (0) 2024.11.17
Reverse Proxy Introduced  (0) 2024.05.27
Nginx Introduced  (0) 2024.05.26
Nginx CheatSheet  (0) 2024.05.25