작성완료

도메인별 내부 포트 분기 (Nginx, SSL 환경)
Nginx와 SSL 환경에서 www 및 non-www 도메인 접속 문제를 해결하기 위한 가이드로, 서버 설정 확인, DNS 설정, Nginx 권장 설정 구조, 운영 중 체크리스트, 이슈 발생 시 대처 방법을 제시한다. SSL 인증서에 두 도메인이 포함되어야 하며, DNS 변경 후 캐시 초기화가 필요하다. 브라우저에서 접속 문제가 발생할 경우 캐시를 먼저 확인해야 한다.
www / non-www 도메인 접속 문제 해결 가이드
대상 상황
domain.co.kr,www.domain.co.kr사용- Nginx + SSL 사용 중
1. 서버 설정 확인
Nginx는 다음 조건을 만족해야 한다.
- 443 포트에서 정상 리스닝
- www / non-www 서버 블록 모두 존재
- SSL 인증서에 두 도메인 모두 포함
확인 명령어
sudo ss -tnlp | grep 443
sudo nginx -t
2. DNS 설정 (권장 형태)
DNS 관리 콘솔에서 다음과 같이 설정한다.
| 타입 | 호스트 | 값 / 위치 |
|---|---|---|
| A | @ | 123.123.123.123 |
| A | www | 123.123.123.123 |
- AAAA(IPv6) 레코드는 사용하지 않으면 삭제
www를CNAME으로 쓰는 경우도 가능
3. Nginx 권장 설정 구조
- HTTP → HTTPS 강제
- 도메인별로 내부 포트 분기
Ubuntu에서 일반적인 Nginx 설정 파일 경로 : /etc/nginx/sites-available/default
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이 정상인데, 특정 브라우저에서만 도메인으로 접속이 안 되면 브라우저 캐시를 먼저 초기화한다.