1. 도메인 구매

2. DNS 레코드 설정

3. Nginx 도입과 HTTPS 적용 (SSL/TLS)

Nginx 포트 포워딩 설정

  1. Nginx 설정 파일 열기 sudo nano /etc/nginx/sites-available/default

  2. 설정 파일 수정 (전체 수정)

    server {
    	listen 80;
    	
    	server_name api.fit-me.site;
    	
    	location / {
    		# 80번으로 들어온 요청을 8080으로 토스
    		proxy_pass http://localhost:8080;
    		
    		# 클라이언트의 진짜 IP와 정보들을 스프링 부트로 넘겨주기 위한 필수 설정들
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header Host $http_host;
    	}
    }
    
  3. Nginx 테스트 및 재시작

    sudo nginx -t # 설정 파일에 문법 오류가 없는지 테스트
    sudo systemctl restart nginx # Nginx 재시작
    

Cerbot을 이용한 HTTS 설정

  1. Certbot 및 Nginx 플러그인 설치

    sudo apt update # 패키지 업데이트
    sudo apt install certbot python3-certbot-nginx -y
    
  2. Certbot 실행하여 인증서 발급 및 자동 세팅

    sudo certbot --nginx -d api.fit-me.site
    
  3. Nginx 설정 파일 확인

    # 1. 기존 80번 블록은 이렇게 변함 (HTTPS로 강제 이동!)
    server {
        listen 80;
        server_name api.fit-me.site;
    
        if ($host = api.fit-me.site) {
            return 301 https://$host$request_uri; # 443으로 쫓아냄
        }
    }
    
    # 2. Certbot이 새로 만들어준 443번 블록
    server {
        listen 443 ssl; # HTTPS 포트
        server_name api.fit-me.site;
    
        # 네가 적었던 8080 토스 설정이 여기로 복사됨!
        location / {
            proxy_pass http://localhost:8080; 
        }
    
        # 복잡한 SSL 인증서 경로들이 자동으로 추가됨 (managed by Certbot)
        ssl_certificate /etc/letsencrypt/live/api.fit-me.site/fullchain.pem; 
        ssl_certificate_key /etc/letsencrypt/live/api.fit-me.site/privkey.pem; 
    }
    

4. EC2 보안 그룹 포트 개방