Nginx 설치부터 웹 페이지 배포까지 – 실무 가이드

1. 서버에 웹사이트를 올리려면 무엇이 필요한가?

서버를 만들고 기본 설정까지 마쳤다면, 이제 실제로 웹사이트를 서버에 올릴 차례입니다. 서버가 있다고 해서 브라우저에서 바로 접속할 수 있는 건 아닙니다.

웹 페이지를 사용자에게 제공하려면 웹서버 소프트웨어가 필요합니다. 웹서버는 브라우저의 요청을 받아 HTML, 이미지, CSS 파일을 전달하는 역할을 합니다. 현재 가장 널리 사용되는 웹서버 소프트웨어가 바로 Nginx입니다.

2. Nginx란 무엇인가?

**Nginx(엔진엑스)**는 러시아 개발자 이고르 시쇼예프(Igor Sysoev)가 2004년에 공개한 오픈소스 웹서버입니다.

기존 Apache 웹서버의 성능 한계를 극복하기 위해 개발됐으며, 특히 동시 접속자가 많은 환경에서 탁월한 성능을 발휘합니다. 현재 Netflix, GitHub, Airbnb를 포함해 전 세계 수억 개의 웹사이트가 Nginx를 사용합니다.

Nginx의 주요 기능은 정적 파일 전송(웹서버), 동적 앱으로의 요청 전달(리버스 프록시), 트래픽 분산(로드 밸런서)입니다.

3. 실습 환경과 사전 준비

이 실습은 Ubuntu 22.04 LTS 서버를 기준으로 합니다. AWS EC2, GCP, 또는 다른 클라우드 서버 모두 동일하게 적용됩니다.

시작 전 다음 사항을 확인합니다. SSH로 서버에 정상 접속이 되어야 합니다. 방화벽에서 80번과 443번 포트가 열려 있어야 합니다. AWS를 사용한다면 보안 그룹에서도 80번 포트 인바운드가 허용되어 있어야 합니다.

4. Nginx 설치하기

SSH로 서버에 접속한 후 먼저 패키지 목록을 업데이트합니다.

sudo apt update

Nginx를 설치합니다.

sudo apt install nginx -y

설치가 완료되면 버전을 확인해 정상 설치를 검증합니다.

nginx -v

nginx version: nginx/1.18.0 처럼 버전 정보가 출력되면 설치 성공입니다.

5. Nginx 실행 및 상태 확인

설치 후 Nginx를 시작합니다.

sudo systemctl start nginx

서버 재부팅 후에도 자동으로 시작되도록 등록합니다.

sudo systemctl enable nginx

현재 상태를 확인합니다.

sudo systemctl status nginx

Active: active (running) 메시지가 보이면 Nginx가 정상 실행 중입니다. 만약 failed 또는 inactive 상태라면 설정 파일 오류나 포트 충돌이 원인일 수 있습니다. 이 경우 sudo journalctl -xe | grep nginx로 상세 오류 내용을 확인합니다.

6. 방화벽 포트 개방

UFW 방화벽을 사용하고 있다면 80번 포트를 허용해야 합니다.

sudo ufw allow 80 sudo ufw allow 443

변경 사항을 확인합니다.

sudo ufw status

AWS EC2 사용자 주의사항: UFW 설정과 별개로 AWS 콘솔의 보안 그룹(Security Group)에서도 HTTP(80번) 인바운드 규칙을 추가해야 합니다. 두 곳 중 한 곳이라도 막혀 있으면 외부에서 접속이 되지 않습니다.

7. 브라우저에서 접속 확인

방화벽 설정까지 완료됐다면 브라우저를 열고 서버의 공인 IP 주소를 주소창에 입력합니다.

http://서버IP주소 형태로 입력하면 Nginx의 기본 환영 페이지가 나타나야 합니다. 화면에 “Welcome to nginx!” 문구와 함께 설치 안내가 표시되면 웹서버가 정상 동작 중임을 의미합니다.

접속이 안 된다면 다음을 순서대로 확인합니다. Nginx가 실행 중인지 systemctl status nginx로 확인하고, UFW 방화벽 설정을 확인하고, AWS를 사용한다면 보안 그룹 인바운드 규칙을 확인합니다.

8. 나만의 HTML 페이지 업로드하기

기본 환영 페이지 대신 직접 만든 페이지를 보여주도록 교체해 보겠습니다.

Nginx의 기본 웹 파일 저장 경로는 /var/www/html/입니다. 이 경로에 있는 파일이 브라우저에 표시됩니다.

기존 기본 파일을 백업합니다.

sudo cp /var/www/html/index.nginx-debian.html /var/www/html/index.bak.html

새 index.html 파일을 작성합니다.

sudo nano /var/www/html/index.html

아래 내용을 입력합니다.

html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>나의 첫 번째 서버</title>
</head>
<body>
  <h1>서버 배포 성공!</h1>
  <p>Nginx 웹서버가 정상적으로 동작 중입니다.</p>
</body>
</html>

저장 후 브라우저에서 새로고침하면 직접 작성한 페이지가 표시됩니다.

9. Nginx 핵심 파일 위치 정리

Nginx를 더 깊이 다루게 되면 아래 경로들을 자주 접하게 됩니다.

경로설명
/etc/nginx/nginx.conf메인 설정 파일
/etc/nginx/sites-available/사이트별 설정 파일 보관 위치
/etc/nginx/sites-enabled/활성화된 사이트 설정
/var/www/html/기본 웹 파일 위치
/var/log/nginx/access.log접속 기록 로그
/var/log/nginx/error.log오류 로그

문제가 생겼을 때 가장 먼저 확인할 파일은 /var/log/nginx/error.log입니다. 오류의 원인이 자세히 기록되어 있습니다.

10. 정리 및 다음 단계

오늘 실습한 내용을 정리합니다.

  • Nginx는 빠르고 가벼운 오픈소스 웹서버로, 현재 가장 많이 사용됩니다.
  • sudo apt install nginx -y로 설치하고 systemctl start nginx로 실행합니다.
  • UFW와 클라우드 보안 그룹 양쪽에서 80번 포트를 허용해야 외부 접속이 됩니다.
  • /var/www/html/index.html 파일을 수정하면 브라우저에서 보이는 페이지가 바뀝니다.

다음 글에서는 HTTP와 HTTPS의 차이, 자물쇠 아이콘이 생기는 이유와 무료 SSL 인증서 발급 방법을 알아보겠습니다.

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.