OffshoreVps
튜토리얼2026년 10월 14일읽는 시간 9분작성: OffshoreVps 팀

VPS에서 Nginx와 HTTPS로 웹사이트 호스팅하는 방법

Ubuntu에 Nginx를 설치하고, 서버 블록을 만들고, 무료 Let's Encrypt 인증서를 추가하고, 속도를 높입니다. 20분 만에 사이트를 띄우는 복사해 붙여넣기용 명령어.

공유 호스팅은 쉽지만, VPS는 속도와 root 권한, 그리고 시끄러운 이웃 없는 환경을 제공합니다. 이 가이드는 새로 만든 Ubuntu 24.04 또는 22.04 서버를 Nginx로 HTTPS가 적용된 라이브 웹사이트로 만드는 과정을 약 20분 안에 안내합니다. 모든 명령어는 그대로 복사해서 사용할 수 있습니다.

Nginx와 HTTPS로 웹사이트를 호스팅하는 데 사용하는 명령어를 보여 주는 VPS의 터미널 창으로, “sudo apt update”로 시작함
이 가이드에서 서버에서 실행하게 될 명령어의 종류입니다.

필요한 것

  • 최소 1 vCPU와 1 GB RAM의 VPS (대부분의 소규모 사이트에는 기본 플랜으로 충분합니다).
  • 서버의 IP 주소를 가리키도록 설정된 도메인 이름 (도메인을 VPS에 연결하기 가이드를 참고하세요).
  • sudo 사용자로 SSH 접속. 서버가 새것이라면 먼저 기본 보안 강화를 진행하세요.

1. Nginx 설치

sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx

브라우저에서 서버의 IP 주소를 여세요. 기본 Nginx 환영 페이지가 보여야 합니다. 보이지 않으면 방화벽이 80번과 443번 포트를 허용하는지 확인하세요.

sudo ufw allow "Nginx Full"
sudo ufw status

2. 사이트 폴더 만들기

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html

전체에서 example.com을 본인의 도메인으로 바꾸세요.

이 가이드의 단계를 순서대로 나열하면 다음과 같습니다. 1. 필요한 것; 2. 1. Nginx 설치; 3. 2. 사이트 폴더 만들기; 4. 4. Let's Encrypt로 무료 HTTPS 추가; 5. 5. 더 빠르게 만들기; 6. 흔한 문제
이 가이드의 단계를 순서대로 나열한 것입니다.

3. server 블록 추가

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

활성화하고, 설정을 테스트한 다음 다시 불러옵니다.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

4. Let's Encrypt로 무료 HTTPS 추가

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot이 server 블록을 수정하고, HTTP를 HTTPS로 리디렉션하며, 인증서를 자동으로 갱신하는 타이머를 설치합니다. 타이머는 systemctl list-timers | grep certbot으로 확인하세요.

5. 더 빠르게 만들기

정적 파일에 대해 압축과 브라우저 캐싱을 켜세요. server 블록 안에 다음을 추가합니다.

gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;

location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public";
}

이후 Nginx를 다시 불러오세요. WordPress 같은 동적 사이트라면 PHP-FPM을 설치하고 .php 요청을 그쪽으로 넘기거나, 앞단에 캐시 플러그인을 두세요.

자주 발생하는 문제

  • 403 Forbidden: Nginx가 폴더를 읽을 수 없습니다. 소유권과 모든 상위 디렉터리에 실행 권한이 있는지 확인하세요 (chmod o+x).
  • Certbot 실패: 도메인이 아직 서버를 가리키지 않거나 80번 포트가 막혀 있습니다.
  • 기본 페이지가 계속 표시됨: /etc/nginx/sites-enabled/default를 삭제하고 다시 불러오세요.