nginx 설정은 「블록(block)」 구조.
server 블록 안에 location 블록 안에 directive — 직관적인 트리.
기본 server 블록.
server { listen 80; server_name example.com; root /var/www/example; index index.html; }.
listen은 포트, server_name은 도메인, root·index는 정적 파일 위치.
location 블록.
「특정 경로 패턴에 다른 처리」.
location /api/ { proxy_pass http://localhost:3000; } — /api/* 요청은 백엔드로.
location ~ \.php$ { fastcgi_pass ...
} — .php 파일은 PHP-FPM으로.
정규식·접두사 매칭.
Reverse proxy.
proxy_pass http://backend; — 가장 흔한 패턴.
proxy_set_header Host $host; — 호스트 헤더 전달.
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; — 원본 IP 전달.
백엔드가 진짜 클라이언트 정보 알 수 있게.
테스트·재시작.
sudo nginx -t — 설정 문법 검사.
sudo systemctl reload nginx — 무중단 재로드(restart는 일시 중단).
항상 -t로 검증 후 reload — 잘못된 설정 reload는 nginx 안 시작.
한 줄 요약
nginx 설정은 server { location { ...
} } 블록 구조.
listen·server_name·root·index, location으로 경로별 처리, proxy_pass로 reverse proxy.
nginx -t로 검증, reload로 무중단.
더 알아볼 것
- nginx location 매칭 우선순위
- upstream으로 로드 밸런싱
- try_files — SPA 라우팅