대외활동/UMC 5th

Ch03. Web Server, WAS, Reverse Proxy Mission Mission

oxdjww 2023. 10. 3. 17:02
728x90
반응형

Ch03. Web Server, WAS, Reverse Proxy Mission

Overview

AWS VPC로 Nginx 호스팅 구성하기

요구사항

  1. 새로운 VPC를 만들어 퍼블릭 서브넷을 구성하여 EC2를 해당 서브넷에 구성
    1. 새 VPC 이름은 챌린저의 닉네임 이름으로 할 것
    2. EC2에 원격 접속하여 nginx 설치 후 웹 브라우저로 EC2의 아이피 주소로 접속 시 nginx 화면이 뜨는 것도 반드시 인증 해야함
  2. /mission3에 접속 시 자신의 닉네임이 포함 된 HTML 문서가 응답으로 오게 구성
  3. /was에 접속 시 8080번 포트로 리버스 프록시가 되도록 설정하고 해당 설정 코드와 502 응답이 화면에 응답으로 온 것을 인증

AWS 세팅

VPC, 보안 그룹, 인터넷 게이트웨이, 서브넷, 라우팅테이블 설정


위의 리소스들을 생성하는 내용은 이전 포스팅과 동일하게 진행하였다.

EC2 설정


기존에 생성한 EC2 인스턴스를 새로운 서브넷에 할당하려고 했으나 공식 홈페이지를 참고하니 불가능함을 알게 되었다.

그래서 EC2도 이전 포스팅와 동일 스펙으로 재생성 해주었다.

그리고 과금 우려가 있으므로 기존 리소스들은 모두 삭제 해주었다.

스크린샷 2023-10-03 15 20 03 스크린샷 2023-10-03 15 20 30 스크린샷 2023-10-03 15 22 02 스크린샷 2023-10-03 15 22 37 스크린샷 2023-10-03 15 22 52 스크린샷 2023-10-03 15 23 46
하지만 탄력적 IP는 기존 인스턴스가 아니라 새로운 인스턴스에 연결하여 재활용 해주었다. 스크린샷 2023-10-03 15 27 54

EC2 접속 후 nginx 확인

스크린샷 2023-10-03 15 30 52

새로 생성한 EC2에 ssh 접속을 한다.
이 때, 에러가 발생해서 이 포스팅을 참조하여 해결하였다.

그리고, 새로 생성된 인스턴스기에 nginx 설치 및 업데이트를 진행한다.

sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y

그리고 퍼블릭 IP로 접속하면 nginx가 80포트로 정상적으로 호스팅되고 있는 모습을 확인할 수 있다.

스크린샷 2023-10-03 15 48 13

/mission3 정적 이미지 호스팅

스크린샷 2023-10-03 15 51 46

이렇게 nginx 설정 파일을 설정하였다.

스크린샷 2023-10-03 15 55 14

그리고 tete.html을 다음과 같이 구성하였다.

스크린샷 2023-10-03 15 56 40

성공적으로 정적 이미지를 불러오는 모습이다.

Reverse Proxy

location /was {
  proxy_pass http://localhost: 3000;
  try_files $uri $uri/ =404;
}

바로 위에서 nginx 설정 파일을 올바르게 설정해주었다고 생각했지만, /was로 접속해도 자꾸만 404 에러가 발생하였다.
이는 try_files 구문이 리다이렉트 시에도 올바른 페이지를 찾지 못하면 404 에러를 발생시켜라 라는 의미이기 때문이다.
해당 구문을 제거하니 정상(?)적으로 502 에러가 발생하는 모습을 확인할 수 있었다.

스크린샷 2023-10-03 16 03 17

감사합니다

728x90
반응형