실습 로그 / AWS 인프라 10단계

AWS 2단계 · 커스텀 웹페이지 배포

기본 Nginx 페이지 대신 직접 만든 HTML 페이지로 교체하기

진행 과정은 실습 내용을 AI와 함께 정리했고, 배운 점은 그걸 보고 제가 이해한 대로 직접 썼습니다. 배운 점 바로가기 ↓

구축트러블슈팅리눅스

목표

기본 Nginx 페이지 대신 직접 만든 HTML 페이지로 교체하기

커스텀 웹 페이지 배포

  • 웹 루트 경로 확인
    sudo nginx -T | grep root
    → /usr/share/nginx/html 확인
  • 해당 경로로 이동 후 파일 확인
    cd /usr/share/nginx/html ls
  • vi로 index.html 수정
    sudo vi index.html
  • 작성한 HTML 코드
    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>내 첫 서버</title> </head> <body> <h1>안녕하세요, 제 첫 EC2 서버입니다</h1> <p>AWS EC2 + Nginx로 배포했습니다.</p> </body> </html>
  • 브라우저 새로고침해서 확인

브라우저 새로고침 후 직접 만든 HTML 페이지("안녕하세요, 제 첫 EC2 서버입니다")가 표시된 화면

트러블슈팅

한글이 물음표(�)로 깨져서 표시됨

  • 원인: HTML에 문자 인코딩(charset) 명시가 없어서 브라우저가 잘못 해석함
  • 해결: <head> 안에 <meta charset="UTF-8"> 추가
  • 재발방지: HTML 파일 작성할 때 charset 태그 기본으로 넣는 습관

2단계 용어

2단계에서 처음 나온 개념과 명령어. 실습 진행 순서대로 정리했다.

1. 웹 루트 경로 찾기

명령어 뜻
nginx -T Nginx 설정 전체 출력 (대문자 T)
파이프 (|) 앞 명령의 출력을 뒤 명령의 입력으로 넘기는 것
grep 텍스트 중 특정 단어가 포함된 줄만 걸러내는 도구
nginx -T | grep root 설정 전체 중 root가 포함된 줄만 추출 → 웹 루트 경로 확인

설정 파일이 수백 줄이라 그냥 보면 찾기 어렵기 때문에 파이프로 필터링한다.

2. 해당 경로로 이동

명령어 뜻
cd 폴더 이동
ls 현재 폴더의 파일 목록 보기

3. 파일 편집 (vi)

용어 / 명령어 뜻
vi 모드 vi는 명령 모드로 시작하므로 i를 누르기 전에는 글자가 입력되지 않는다
vi 파일명 리눅스 기본 텍스트 편집기로 파일 열기
i 입력 모드 진입
Esc 입력 모드 빠져나오기
:wq 저장 후 종료
:q! 저장하지 않고 강제 종료

4. HTML 작성

용어 한 줄 설명
HTML 웹페이지의 구조를 기술하는 마크업 언어
charset (문자 인코딩) 문자를 어떤 방식으로 저장·해석할지 정하는 규칙
UTF-8 전 세계 문자를 표현하는 인코딩 방식. 명시하지 않으면 브라우저가 추측해 한글이 깨질 수 있다
<meta charset="UTF-8">

이 태그가 "이 문서는 UTF-8로 읽어라"를 명시한다.

5. 접속 확인

용어 한 줄 설명
브라우저 캐시 이전에 받은 페이지를 저장해두고 재사용하는 기능. 수정이 반영 안 된 것처럼 보일 수 있다

배운 점

직접 작성
  • sudo nginx -T | grep root
    • nginx -T : 설정 파일 전체를 합쳐서 출력하는 명령어
    • grep root : root 지시어만 걸러내는 명령어
      • root : nginx가 요청 받으면 파일을 찾으러 가는 디렉터리
        • 기본값 : /usr/share/nginx/html
  • 웹페이지 교체 방식
    • nginx root 디렉터리의 index.html을 바꾸면 됨
      • 파일만 바꾸었기 때문에 nginx 재시작 필요 X
      • 설정파일 (nginx.conf) 고쳤을 때 reload/restart 필요
  • 파일 소유자 , 권한
    • /usr/share/nginx/html은 root 소유자라서 sudo vi로 열어야 저장된다.
      • nginx는 요청 처리할 때 이 파일을 읽어야되는데 권한이 없으면 서버는 살아있지만 403이 뜬다
  • http:// public 주소 —> nginx 웹페이지 확인