nginx 설정 생성기
생성된 설정
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
}관련 도구
nginx란?
nginx는 고성능 웹 서버이자 리버스 프록시 서버입니다. 정적 파일 서빙, 로드 밸런싱, SSL 종료, 리버스 프록시 등 다양한 역할을 수행합니다. 설정 파일 기반으로 동작하며, 경량이면서도 높은 동시 접속을 처리할 수 있어 널리 사용됩니다.
주요 디렉티브
| 디렉티브 | 설명 | 예시 |
|---|---|---|
| listen | 수신 포트 | listen 80; |
| server_name | 도메인 지정 | server_name example.com; |
| root | 문서 루트 경로 | root /var/www/html; |
| location | URL 경로별 설정 | location /api { ... } |
| proxy_pass | 리버스 프록시 대상 | proxy_pass http://localhost:3000; |
| ssl_certificate | SSL 인증서 경로 | ssl_certificate /etc/ssl/cert.pem; |
| try_files | 파일 탐색 순서 | try_files $uri $uri/ /index.html; |
자주 사용하는 설정 예시
정적 파일 서빙
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
} 리버스 프록시 (Node.js 앱)
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
} SPA + HTTPS 리다이렉트
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
root /var/www/html;
try_files $uri $uri/ /index.html;
}