자바 & 스프링부트 서버 개발

AWS EC2 서버 구축 - 2

개발학생 2022. 8. 27. 20:00
반응형

*22년도 4월에 Ubuntu 18.04 버전으로 구축했던 서버
*빨간 부분들은 잘못 진행한 걸로 추정되는 부분들입니다

 

 

 

4. Domain 적용 (가비아, 후이즈 등..에서 구입)

- 가비아 사이트에서 server1mia.co.kr 사이트의 도메인을 구입하고, DNS 설정→레코드 수정 진행

 

A타입: IPv4주소, AAAA=IPv6@: 앞에 아무것도 안 넣었을 때 ex) naver.com

TTL: Time To Live
www: 앞에 www를 넣으면 접속 가능

- 주소 앞에 www를 넣었을 때도, 아무것도 넣지 않았을 때도 정상적으로 페이지가 출력된다

 

 

5. HTTPS 적용 (let's encrypt)

- 참고 블로그:https://gorokke.tistory.com/216

 

Let's Encrypt: 사용자에게 무료로 TLS 인증서를 발급해주는 비영리기관. 30일간 유효한 인증서이므로 '자동갱신' 설정을 해주는 것이 좋음

웹 서버에서 암호화된 HTTPS를 사용할 수 있음 사용자에게 Certbot라는 소프트웨어를 제공함으로써 구현할 수 있게 함

AWS EC2 인스턴스는 방화벽이 비활성화 되어 있어, HTTPS 방화벽 허용이 필요하지 않음

 

1) AWS EC2 보안 인바운드 규칙 추가

 

2) Certbot 설치 - 이 코드가 아니었다.. 맞는 코드는 "7-2)"번에

//Certbot 패키지 최신버전으로
$ sudo apt update
$ sudo apt upgrade
$ sudo add-apt-repository ppa:certbot/certbot ->실행안됨

//Certbot Nginx 패키지 설치
$ sudo apt install python-certbot-nginx

 

3) Nginx Config 설정 - 필요하지 않은 코드였다..

//Nginx 기본 설정 파일 인증서 적용할 도메인 이름 설정
$ sudo vim /etc/nginx/sites-available/default

// /etc/nginx/sites-available/default
(try_files #=$uri $uri/ =404;부분은 주석처리)
1) server_name _; 에서 언더바_ 를 지우고 본인의 가비아 주소를 입력

2) location / { 안쪽에 다음과 같이 입력 :

                proxy_pass http://localhost:8080;

                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;

 

4) 테스트 및 적용 - 필요하지 않은 코드였다..

//저장하고 빠져나와서 nginx 테스트-'systax is ok', 'is successful'이 나와야 함
$ sudo nginx -t

//문제가 없다면 설정 파일 적용을 위해 Nginx 를 다시 로드
$ sudo systemctl reload nginx

 

5) https://www.ssllabs.com/ssltest/에서 적용 결과 확인

- 두 웹페이지 모두 잘 적용되지 않음 (A가 나와야 하는 거였음..)

 

6. Sub Domain 적용 (Dev, Prod)

7. Redirection 적용 (IP to Domain)

- 223.130.195.95 IP를 url창에 입력하면 네이버 사이트 뜨는 식으로, IP 입력 시 도메인주소창이 뜨게 하기.
  그리고 http로 url창에 입력 시에도 https로 뜨게 하기

 

1) Nginx 구성 파일 편집 - 1) 전체가 잘못된 것 같다

더보기

https://nuggy875.tistory.com/119, https://ndb796.tistory.com/341 참고

중간에 local/{}부분도 있었는데, 그부분에서 자꾸 에러가 나서 지워버렸다
자꾸 restart 명령어에서 오류가 나서 오류내용을 확인해봤다.
;을 다시 채워넣었는데, server를 이 /etc/nginx/nginx.conf에 쓰면 안된단다... 블로그에선 거기 써도 된다고했는데... 다른블로그 참고해서, IP부분 13.209.73.105로 고쳐서 /etc/nginx/sites-enabled/default에 다시 작성하자
코드가 중구난방이라 겹치는 부분들은 모두 주석처리했다.. 이래도 해결안된다.. 마지막에 server_name에 IP주소를 넣어서 쓰는 코드도 작성했다 proxy~부분은 지워도 별 영향이 없어서 그냥 지웠다
코드가 중구난방이라 겹치는 부분들은 모두 주석처리했다.. 이래도 해결안된다.. 마지막에 server_name에 IP주소를 넣어서 쓰는 코드도 작성했다 proxy~부분은 지워도 별 영향이 없어서 그냥 지웠다
//https://nuggy875.tistory.com/119 참고해서 이 코드들이 빠진거구나 싶어서 넣고 다시 nginx를 restart했는데도 안된다..
$ sudo apt-get install  letsencrypt -y
$ sudo apt install snapd
$ sudo snap install hello-world
$ sudo snap install --classic certbot

 

 

- '사이트에 연결할 수 없음' 이라는 오류를 해결할 수 없었다...



2) 결국..... 인스턴스부터 다시만들기

*호스팅도 따로 결제해야 하는 줄 알고 miaserver.shop 도메인을 또 구매했다..
  가비아 사이트의 경우, DNS 설정→'레코드 수정'
에서 IP를 변경하면 된다)

- IP: 3.35.16.87로 변경

- https://certbot.eff.org/instructions?ws=nginx&os=ubuntubionic 공식사이트 참고해서 certbot 설치

//certbot 설치
$ sudo snap install --classic certbot

//Certbot command 준비
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

//Certbot 인증서 발급-메일주소입력, 약관동의, 도메인주소 2가지 모두 입력
sudo certbot --nginx

Certbot 인증서 발급 완료..
제대로 https 적용 완료!!
Sub Domain 재설정 완료!
sudo vi /etc/nginx/sites-available/default를 입력하고 파일에 다음 코드를 추가한 후, sudo service nginx restart를 진행 (Redirection 설정)
ip 주소 입력하고 enter 누르기 전
ip주소 입력 후 enter 눌렀을 때

 

반응형