sanguk.dev
작성완료
도메인별 내부 포트 분기 (Nginx, SSL 환경)

도메인별 내부 포트 분기 (Nginx, SSL 환경)

Nginx와 SSL 환경에서 www 및 non-www 도메인 접속 문제를 해결하기 위한 가이드로, 서버 설정 확인, DNS 설정, Nginx 권장 설정 구조, 운영 중 체크리스트, 이슈 발생 시 대처 방법을 제시한다. SSL 인증서에 두 도메인이 포함되어야 하며, DNS 변경 후 캐시 초기화가 필요하다. 브라우저에서 접속 문제가 발생할 경우 캐시를 먼저 확인해야 한다.

NginxSSL 인증서

www / non-www 도메인 접속 문제 해결 가이드

대상 상황

  • domain.co.kr, www.domain.co.kr 사용
  • Nginx + SSL 사용 중

1. 서버 설정 확인

Nginx는 다음 조건을 만족해야 한다.

  • 443 포트에서 정상 리스닝
  • www / non-www 서버 블록 모두 존재
  • SSL 인증서에 두 도메인 모두 포함

확인 명령어

bash
sudo ss -tnlp | grep 443
sudo nginx -t

2. DNS 설정 (권장 형태)

DNS 관리 콘솔에서 다음과 같이 설정한다.

타입호스트값 / 위치
A@123.123.123.123
Awww123.123.123.123
  • AAAA(IPv6) 레코드는 사용하지 않으면 삭제
  • www를 CNAME으로 쓰는 경우도 가능

3. Nginx 권장 설정 구조

  • HTTP → HTTPS 강제
  • 도메인별로 내부 포트 분기

Ubuntu에서 일반적인 Nginx 설정 파일 경로 : /etc/nginx/sites-available/default

plain
server {
    listen 80;
    server_name domain.co.kr www.domain.co.kr;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name domain.co.kr;
    
    ssl_certificate     /etc/ssl/certs/cert.crt;
    ssl_certificate_key /etc/ssl/private/key.key;
    
    
    location / {
        proxy_pass http://localhost:3000;
    }
}

server {
    listen 443 ssl;
    server_name www.domain.co.kr;
    
    ssl_certificate     /etc/ssl/certs/cert.crt;
    ssl_certificate_key /etc/ssl/private/key.key;
    
    
    location / {
        proxy_pass http://localhost:3001;
    }
}

4. 운영 중 권장 체크리스트

  • SSL 인증서 SAN에 www / non-www 모두 포함
  • DNS 변경 후 바로 테스트하지 말고 캐시 초기화
  • Safari, Chrome 등 다양한 브라우저에서 확인
  • 서버 설정이 정상이라면 브라우저 캐시를 먼저 의심

5. 이슈 발생시

서버 설정과 SSL이 정상인데, 특정 브라우저에서만 도메인으로 접속이 안 되면 브라우저 캐시를 먼저 초기화한다.