Nginx Config 생성기
Nginx server block 설정 파일 생성
Nginx란?
Nginx는 Igor Sysoev가 개발한 고성능 오픈소스 웹서버로, 리버스 프록시·로드밸런서·HTTP 캐시 기능을 겸비합니다. 이벤트 기반 비동기 아키텍처 덕분에 높은 동시 접속 환경에서 Apache보다 훨씬 적은 메모리로 우수한 성능을 발휘합니다. 현재 전 세계 웹서버 점유율 1위입니다.
자주 묻는 질문
Q. Apache와 Nginx의 핵심 차이는?
A. Apache는 요청마다 스레드/프로세스를 생성하는 방식이고, Nginx는 이벤트 기반 비동기 방식으로 동작합니다. 대량의 동시 접속 처리에는 Nginx가 유리하고, .htaccess 등 동적 설정이 필요한 경우 Apache가 유연합니다.
Q. server block이란 무엇인가요?
A. Nginx의 server block은 Apache의 VirtualHost와 동일한 개념입니다. 하나의 서버에서 여러 도메인을 독립적으로 호스팅할 수 있으며, /etc/nginx/sites-available/ 디렉토리에 도메인별 파일로 관리합니다.
Q. 리버스 프록시 설정을 어떻게 하나요?
A. location 블록 내에 proxy_pass http://localhost:3000;을 추가합니다. proxy_set_header Host $host;와 proxy_set_header X-Real-IP $remote_addr;도 함께 설정하면 원본 IP를 백엔드에 전달할 수 있습니다.
Q. Let's Encrypt SSL 인증서를 Nginx에 적용하는 방법은?
A. certbot --nginx -d example.com 명령어를 사용하면 자동으로 Nginx 설정에 SSL을 추가합니다. 수동으로 설정할 경우 ssl_certificate와 ssl_certificate_key 경로를 지정하고 listen 443 ssl을 추가합니다.
Q. PHP-FPM 연동 시 주의사항은?
A. fastcgi_pass 소켓 경로가 실제 PHP-FPM 소켓과 일치해야 합니다. PHP 버전에 따라 /run/php/php8.1-fpm.sock, /run/php/php8.2-fpm.sock 등이 다를 수 있습니다. php-fpm 서비스가 실행 중인지 확인하세요.
Q. Gzip 설정이 이미 압축된 파일에 영향을 주나요?
A. .jpg, .png, .gif, .zip 등 이미 압축된 바이너리 파일은 gzip_types에 포함시키지 않으면 됩니다. Nginx는 기본적으로 지정한 MIME 타입에만 압축을 적용합니다.
Q. worker_processes는 어떻게 설정하나요?
A. worker_processes auto;로 설정하면 CPU 코어 수에 맞게 자동 조정됩니다. worker_connections는 기본 1024이며, 높은 동시접속이 필요하면 4096 이상으로 늘리고 ulimit도 함께 조정하세요.
Q. 정적 자산 캐싱 설정의 효과는?
A. expires 1y; add_header Cache-Control "public, immutable"; 설정으로 이미지·폰트 등 변경이 드문 파일을 1년 캐싱하면 재방문 시 서버 요청이 줄어 TTFB와 대역폭이 크게 개선됩니다.