본문 바로가기

서버

nginx - SSL 도메인 별로 다르게 적용하기

728x90

1. 두개 도메인의 SSL 얻기

 

sudo certbot certonly --standalone -d 도메인1
sudo certbot certonly --standalone -d 도메인2

 

 

2. nginx conf 파일 수정하기

 

도메인1 전용과

도메인2 전용을

 

server_name 값으로 확인하여 

따로 SSL을 적용한다.

 

# 도메인1 전용
server {
    listen 443 ssl;
    server_name 도메인1;

    ssl_certificate /etc/nginx/fullchain.pem;
    ssl_certificate_key /etc/nginx/privkey.pem;

    # Frontend
    location / {
        proxy_pass http://172.19.0.5:3000;  # Next.js container
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Backend (Spring Boot)
    location /api/ {
        proxy_pass http://172.19.0.6:30000;  # Spring Boot backend container
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
   location /uploads/ {
      proxy_pass http://172.19.0.6:30000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      add_header Cache-Control "public, max-age=86400";
    }
}

server {
    listen 80;
    server_name 도메인1;

    location / {
        return 301 https://$host$request_uri;
    }
}


#도메인2전용
server {
    listen 443 ssl;
    server_name 도메인2;

    ssl_certificate /etc/nginx/fullchain.pem;
    ssl_certificate_key /etc/nginx/privkey.pem;

    # Frontend (Next.js)
    location / {
        proxy_pass http://172.19.0.5:3000;  # Next.js container
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Backend (Spring Boot)
    location /api/ {
        proxy_pass http://172.19.0.6:30000;  # Spring Boot backend container
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    
   location /uploads/ {
      proxy_pass http://172.19.0.6:30000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      add_header Cache-Control "public, max-age=86400";
    }
}

server {
    listen 80;
    server_name 도메인2;

    location / {
        return 301 https://$host$request_uri;
    }
}