본문으로 건너뛰기
← 가이드 목록

내 도메인으로 웹사이트 만들기 (Nginx·무료 HTTPS)

Ubuntu 서버에 웹서버(Nginx)를 설치하고, 내 도메인을 연결한 뒤, 무료 인증서로 HTTPS(자물쇠)까지 적용하는 방법입니다.

1. Nginx 설치

sudo apt update
sudo apt install -y nginx

방화벽(ufw)을 켜두었다면 웹 포트를 엽니다. (방화벽 포트 열기)

sudo ufw allow 'Nginx Full'

브라우저에서 http://서버IP로 접속해 "Welcome to nginx!" 화면이 나오면 성공입니다.

2. 도메인 연결하기

도메인을 산 곳(가비아, 호스팅케이알, Cloudflare 등)의 DNS 관리 메뉴에서 레코드를 추가합니다.

타입호스트(이름)값
A@서버 IP
Awww서버 IP

DNS 반영에는 보통 몇 분, 길게는 몇 시간이 걸립니다. 내 PC에서 아래 명령어로 서버 IP가 나오면 연결된 것입니다.

nslookup example.com

3. 내 사이트 설정하기

웹 파일을 둘 폴더를 만들고 Nginx 설정 파일을 작성합니다. (example.com은 내 도메인으로 바꿉니다)

sudo mkdir -p /var/www/example.com
echo '<h1>Hello Nevv!</h1>' | sudo tee /var/www/example.com/index.html
sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html;
}

설정을 켜고 Nginx를 다시 불러옵니다.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t            # 설정 문법 검사 — "ok"가 나와야 합니다
sudo systemctl reload nginx

Node.js·Python 앱을 연결하고 싶다면

앱이 서버 안에서 예를 들어 3000번 포트로 실행 중이라면, 위 설정의 root, index 줄 대신 아래를 넣습니다.

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

4. HTTPS 적용 (무료 인증서)

Let's Encrypt 인증서를 자동으로 발급·설치해주는 certbot을 사용합니다. 2단계 도메인 연결이 끝난 뒤 진행하세요.

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

이메일 입력과 약관 동의 후 자동으로 설정됩니다. 인증서는 90일마다 자동 갱신되며, 아래 명령어로 갱신이 잘 되는지 미리 확인할 수 있습니다.

sudo certbot renew --dry-run

잘 안 될 때

  • 사이트가 안 열려요 — sudo systemctl status nginx로 Nginx가 실행 중인지, 방화벽에서 80/443이 열려 있는지 확인하세요.
  • certbot이 실패해요 — 도메인이 아직 서버 IP로 연결되지 않은 경우가 대부분입니다. nslookup으로 먼저 확인하세요.
  • 502 Bad Gateway — proxy_pass로 연결한 앱이 꺼져 있습니다. 앱을 먼저 실행해주세요.

해결되지 않는 문제가 있다면 고객센터로 문의해주세요.