KO
내 도구

Nginx 설정 생성기 (server 블록)

nginx server 블록을 만듭니다. 정적 사이트, SPA, PHP-FPM, 리버스 프록시와 Let’s Encrypt HTTPS, 리디렉션, HTTP/2, gzip, 캐시, 보안 헤더, WebSocket을 지원합니다.

첫 이름이 대표 이름이고, 아래에서 선택하면 나머지는 대표 이름으로 리디렉션됩니다.
nginx 설정
테스트와 다시 불러오기
sudo nginx -t && sudo systemctl reload nginx
server 블록 수
3
location 블록 수
4
문법 검사
중괄호가 맞고 모든 지시어가 ;로 끝남

다시 불러오기 전에 인증서를 받으세요. 없으면 파일이 없어 nginx -t가 실패합니다. /var/www/letsencrypt를 만들고 80번 포트 블록만으로 시작한 뒤 certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com 을(를) 실행하세요. 와일드카드 이름에는 DNS 챌린지가 필요합니다.

리버스 프록시 모드에서는 정적 자산 캐시를 앱에 맡깁니다. 그쪽에서 Cache-Control 헤더를 설정하세요.

파일을 /etc/nginx/sites-available/example.com(Debian/Ubuntu에서는 sites-enabled에 링크) 또는 /etc/nginx/conf.d/example.com.conf로 저장한 뒤 테스트하고 다시 불러오세요.

내 도구 →
광고

nginx는 웹의 많은 부분을 서비스하지만 설정에서 미묘하게 틀리기 쉽습니다. 빠진 세미콜론, HTTPS 리디렉션 무한 반복, location 블록 안에서 조용히 사라지는 보안 헤더 같은 문제입니다. 이 생성기는 정적 사이트, 싱글 페이지 앱, PHP-FPM 사이트, 다른 포트의 앱으로 가는 리버스 프록시를 위한 주석이 달린 완전한 server 블록을 작성하며, Let’s Encrypt HTTPS, 대표 호스트 리디렉션, HTTP/2, gzip, 자산 캐시, 보안 헤더, WebSocket, 선택적 요청 제한을 지원합니다.

사용 방법

  1. 도메인 이름(첫 번째가 대표)을 입력하고 사이트 종류를 고르세요.
  2. 웹 루트, 앱 주소 또는 PHP-FPM 소켓을 채우세요.
  3. HTTPS, 리디렉션, 필요한 추가 기능을 켜세요.
  4. 파일을 저장하고 인증서를 받은 뒤 nginx -t를 실행하고 다시 불러오세요.

계산식

HTTPS layout: server :80 (ACME challenge + 301 to https) → server :443 for the extra names (301 to the main name) → server :443 for the main name with the site configuration.

try_files가 제공할 내용을 정합니다. 정적 파일은 $uri $uri/ =404, 싱글 페이지 앱의 대체는 /index.html, PHP 프런트 컨트롤러는 /index.php?$query_string입니다. server 블록의 add_header 줄은 자체 add_header가 있는 location에 상속되지 않으므로, 생성된 location은 add_header를 쓰지 않습니다.

예시

example.com과 www.example.com을 HTTPS로 http://127.0.0.1:3000에 리버스 프록시하면 출력에 server 블록 3개가 있습니다. 80번 포트 리디렉션, 443의 www → example.com, 주 사이트이며, 주 location에는 Host, X-Forwarded, WebSocket 업그레이드 헤더와 함께 proxy_pass http://127.0.0.1:3000;가 들어갑니다.

자주 묻는 질문

map 블록은 어디에 두나요?

map과 limit_req_zone은 http 컨텍스트에 속합니다. /etc/nginx/conf.d/와 sites-enabled/의 파일은 http 안에 포함되므로, 생성된 파일을 그대로 거기에 저장하면 됩니다.

왜 "listen 443 ssl http2" 대신 "http2 on;"인가요?

nginx 1.25.1에서 별도의 http2 지시어가 도입되고 listen 매개변수는 더 이상 권장되지 않게 되었습니다. 일부 배포판의 1.18이나 1.22 패키지 같은 이전 버전이라면 새 문법 옵션을 끄세요.

HSTS를 바로 켜도 되나요?

아니요. 브라우저가 HSTS를 보면 max-age 동안 일반 HTTP를 거부합니다. HTTPS가 모든 곳에서 작동한 뒤에 켜고, 모든 서브도메인이 준비되었을 때만 includeSubDomains를 추가하세요.

출처

최종 업데이트:

인용·퍼가기
APA

kakaoCalc. (2026, November 8). Nginx 설정 생성기 (server 블록). https://kakao.mobile/ko/tools/nginx-config-generator/

MLA

“Nginx 설정 생성기 (server 블록).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/nginx-config-generator/.

광고