본문으로 건너뛰기
ToolMug

Nginx 설정 생성기

리버스 프록시, 정적 사이트, SPA 또는 PHP 사이트에 필요한 Nginx 설정을 옵션으로 구성하고 복사 가능한 설정 파일을 만드세요.

브라우저에서 실행 — 입력한 내용은 업로드되지 않아요

HTTPS
추가 설정

0이면 nginx 기본값인 1MB를 사용해요.

먼저 예를 들어 certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com으로 인증서를 받으세요. 그런 다음 nginx -t를 실행하고 nginx를 다시 불러오세요.

사용 방법

  1. 도메인과 사이트 유형을 선택하고 upstream 또는 웹 루트를 입력하세요.
  2. HTTPS, HSTS, gzip, 캐시, 보안 헤더와 요청 본문 크기를 설정하세요.
  3. 생성된 설정을 검토하고 서버의 사이트 설정 파일에 복사하세요.

옵션 설명

사이트 유형
리버스 프록시, 정적 파일, SPA와 PHP-FPM 설정 중에서 선택할 수 있어요.
보안 옵션
HTTPS 리디렉션, HSTS와 일반적인 보안 헤더를 추가할 수 있어요.
캐시와 제한
정적 자산 캐시, gzip, 최대 요청 본문 크기와 프록시 시간 제한을 설정해요.

예시: HTTPS와 www를 쓰는 싱글 페이지 앱

도메인을 example.com으로 하고, 싱글 페이지 앱, HTTPS, HTTP/2, www.도메인도 응답하고 리디렉션을 체크한 경우예요(간단히 하려고 Gzip 압축, 보안 헤더, 정적 파일 장기 캐시는 껐어요). 생성기는 server 블록 세 개를 작성해요.

  1. 80번 포트는 두 이름에 모두 응답하고, 인증서 갱신을 위해 /.well-known/acme-challenge/는 접근 가능하게 두며, 나머지는 모두 301로 https://example.com$request_uri에 보내요.
  2. www.example.com의 443번 포트는 같은 인증서를 쓰고, 루트 도메인으로 301을 반환해요.
  3. example.com의 443번 포트가 사이트를 제공해요.
    root /var/www/example.com;
    index index.html;
    location / {
        try_files $uri $uri/ /index.html;
    }

두 HTTPS 블록은 모두 /etc/letsencrypt/live/example.com/fullchain.pem과 privkey.pem을 가리키고, TLS 1.2와 1.3을 허용하며, 10 MB 공유 세션 캐시와 하루짜리 세션 타임아웃을 써요. try_files 줄 덕분에 /settings 같은 클라이언트 측 라우트에서 새로고침해도 404가 아니라 앱이 반환돼요.

자주 묻는 질문

생성된 설정을 바로 사용할 수 있나요?

환경에 맞는 인증서 경로, upstream 주소와 루트 경로를 확인한 뒤 nginx 설정 검사와 재로드를 실행하세요.

SPA 라우팅도 지원하나요?

네. 존재하지 않는 경로를 index.html로 보내는 try_files 설정을 추가할 수 있어요.

HTTPS 인증서도 발급하나요?

아니요. 인증서를 발급하지는 않아요. 인증서와 키 경로를 입력해 서버 블록 설정만 만들어요.

개인정보 보호

이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.

관련 도구