Nginx: 하나의 서버에서 두 도메인 SSL 설정 방법

2026. 3. 23. 12:34·🐧Linux

하나의 서버에서 2개의 웹 프론트 서버가 서로 다른 도메인으로 SSL(443포트) 사용 가능하다. 단, 아래 조건을 만족해야 한다.


✅ 전제 조건

  1. 도메인이 서로 다름
    • 예: a.example.com, b.example.com
  2. 각 도메인에 대해 유효한 SSL 인증서
    • Let’s Encrypt 등에서 도메인 별 인증서 발급
  3. 리버스 프록시(Web 서버)가 하나만 443 포트를 바인딩
    • Nginx나 Apache 같은 리버스 프록시를 사용해 도메인에 따라 백엔드 서버로 트래픽 분기

🧱 구조 예시

[Client]
   |
443 포트 요청 (도메인 A 또는 B)
   ↓
[Nginx Reverse Proxy]  (SSL 인증서 설정, 443 포트 점유)
   ├──> http://localhost:3001 (도메인 A용 웹 앱)
   └──> http://localhost:3002 (도메인 B용 웹 앱)
# nginx conf 예시

# a.example.com에 대한 설정
server {
    listen 443 ssl;
    server_name a.example.com;

    ssl_certificate     /etc/ssl/certs/a_cert.pem;
    ssl_certificate_key /etc/ssl/private/a_key.pem;

    location / {
        proxy_pass http://localhost:3001;
    }
}

# b.example.com에 대한 설정
server {
    listen 443 ssl;
    server_name b.example.com;

    ssl_certificate     /etc/ssl/certs/b_cert.pem;
    ssl_certificate_key /etc/ssl/private/b_key.pem;

    location / {
        proxy_pass http://localhost:3002;
    }
}

📝 요약

항목가능 여부설명

443 포트 공유 가능 ✅ Nginx나 Apache 하나만 점유하고 도메인 분기로 분리
서로 다른 도메인 사용 ✅ server_name으로 분기 가능
SSL 인증서 동시 적용 ✅ 도메인별 인증서 각각 설정 필요

📌 SSL 없이도 가능? (HTTP:80)

SSL 인증서를 사용하지 않고 하나의 서버에서 두 개의 웹 프론트 서버를 서로 다른 도메인으로 띄우는 것도 가능하다. 이 경우엔 443 포트가 아니라 80포트로 사용하게 된다.

✅ 요약: SSL 없이 가능한가?

조건가능 여부설명

SSL 없이 HTTP만 사용할 경우 ✅ 80 포트는 여러 도메인에서 공유 가능
도메인 별로 서비스 가능 ✅ server_name으로 도메인 분기 가능
보안 (HTTPS) 없음 ❌ 모든 트래픽이 암호화되지 않음 (보안 취약)

⚠️ 주의할 점

  • 중간자 공격(MITM)에 취약 → 로그인, 개인정보 송수신이 있다면 반드시 SSL 사용 권장
  • 일부 브라우저에서는 HTTPS 필수로 요구 → 특히 PWA, 모바일 앱, OAuth, API 연동 등에서 문제 발생 가능

💬 결론

✅ 도메인이 있다면 포트를 나눌 필요 없음. Nginx 같은 리버스 프록시로 하나의 포트(80/443)에서 라우팅 가능

❌ 도메인이 없으면 포트를 나눠야 함. 각 서비스가 독립된 포트를 차지해야 하므로

저작자표시 비영리 변경금지 (새창열림)

'🐧Linux' 카테고리의 다른 글

Linux: Ubuntu22.04-Docker 설치  (0) 2026.03.23
Nginx: 마이크로캐싱(Micro-Caching) 적용하기  (0) 2026.03.23
SSL 파일형식 통합: Apache와 Nginx에서의 활용 방법  (0) 2026.03.23
Linux: Firewalld 방화벽 설정 가이드  (0) 2026.03.17
Linux: Ubuntu22.04에서 수동 IP 설정하기  (0) 2026.03.17
'🐧Linux' 카테고리의 다른 글
  • Linux: Ubuntu22.04-Docker 설치
  • Nginx: 마이크로캐싱(Micro-Caching) 적용하기
  • SSL 파일형식 통합: Apache와 Nginx에서의 활용 방법
  • Linux: Firewalld 방화벽 설정 가이드
Diven
Diven
  • Diven
    Diven
    Diven
  • 전체
    오늘
    어제
    • 분류 전체보기 (110) N
      • ☁️Cloud (21) N
        • AWS (2)
        • Alibaba (14) N
        • OCI (1)
        • AWS: Certified Solution Arc.. (0)
        • AWS: Certificate Advanced N.. (2) N
      • 📊DB (13)
        • MongoDB (8)
        • MariaDB (2)
        • PostgreSQL (2)
        • MySQL (1)
      • 🧑🏽‍💻Dev:Lang (9)
        • C++ (0)
        • GO (1)
        • Python (8)
      • ⚙️DevOps (4)
        • CICD (0)
        • Jenkins (4)
      • 🐳Docker (15)
      • 🪢laC (0)
      • ⚓K8s (7)
      • 🐧Linux (25)
      • 🖥️Monitoring (10)
        • Grafana (1)
        • Prometheus (6)
        • Loki (1)
        • ELK (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알리바바 클라우드
    NGINX
    alertmanager
    Cloud
    docker
    Python
    jenkins
    prometheus
    AWS
    PolarDB
    db
    centOS7
    Alibaba
    k8s
    mongoDB
    SSL
    mariadb
    alb
    linux
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Diven
Nginx: 하나의 서버에서 두 도메인 SSL 설정 방법
상단으로

티스토리툴바