본 플젝은 스프링부트를 사용했으며 깃헙 액션을 통해 도커허브에 이미지를 푸시하고 ec2에서 이미지를 실행시키는 방식이다.
※ AWS Route53에서 도메인을 구매했거나 Route53의 호스팅 영역 생성 후 NS값을 해당 도메인의 네임서버에 넣어주면 된다.
1. 도메인 Https 설정
-1) AWS ACM(AWS Certificate Manager) 접속 후 인증서 생성
-2) 인증서 ID 누름 → Route 53 레코드 생성
몇 분 후에 성공 상태가 된다.
-3) ec2 로드 밸런서 생성
* Application Load Balancer으로 생성
http와 https를 모두 생성해 준 후 타깃 그룹을 생성해 준다.
Nginx에서 80 포트로 접속할 것이므로 protocol : http port: 80으로 해주면 된다.
즉, 서비스에 접속하는 포트 번호를 적어 주면 된다.
(접속 흐름: Browser(Client) → HTTPS(TLS) → ELB(ALB) → HTTP → WAS)
2. Nginx - default.conf 수정
server {
listen 80;
server_name teampple.site;
# https 가 아닐 시 https로 리다이렉트
if ($http_x_forwarded_proto != 'https') {
return 301 https://$host$request_uri;
}
location /api {
proxy_pass http://backend-dev:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_redirect off;
}
}
이제, 만약 https가 아닌 http로 접속을 요청한다면 자동으로 https로 리다이렉트 시켜줄 것이다.
출처 및 참고
https://kingofbackend.tistory.com/197
'👩💻 개발 > 📡 DEVOPS' 카테고리의 다른 글
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 2 (0) | 2023.02.22 |
---|---|
[DevOps] SpringBoot + GitHub action + Nginx + AWS 배포 - 1 (2) | 2023.02.21 |
[DevOps] Github Actions란? (0) | 2023.02.20 |
[Nginx] Nginx란? (0) | 2022.12.26 |
[Docker] 도커 컴포즈란? (1) | 2022.12.23 |