Django는 파이썬 기반의 강력한 웹 프레임워크로, 웹 애플리케이션을 신속하게 개발할 수 있도록 다양한 기능을 제공합니다. 이번 강좌에서는 Django 서버를 개발하고, 도메인을 설정하며 HTTPS를 적용하는 방법에 대해 자세히 알아보겠습니다.
1. Django 서버 개발 환경 구축하기
Django 서버를 구축하기 위해 먼저 필요한 개발 환경을 설정해야 합니다. 주요 단계는 다음과 같습니다.
1.1. 파이썬 설치
Django는 Python 3.6 이상에서 실행됩니다. 따라서 Python이 설치되어 있는지 확인하고, 설치되어 있지 않다면 공식 웹사이트(python.org)에서 다운로드하여 설치합니다.
1.2. Django 설치
Python이 설치되었다면, pip를 사용하여 Django를 설치할 수 있습니다. 터미널 또는 커맨드 프롬프트를 열고 다음 명령어를 입력합니다.
pip install django
1.3. Django 프로젝트 생성
Django가 설치되었다면, 이제 새로운 프로젝트를 생성할 수 있습니다. 다음 명령어로 ‘myproject’라는 이름의 Django 프로젝트를 생성해봅시다.
django-admin startproject myproject
2. 도메인 설정하기
Django 프로젝트를 배포하기 위해 도메인을 설정해야 합니다. 여기서는 DigitalOcean, AWS, Heroku 등에서 도메인을 설정할 수 있는 방법을 다룰 것입니다. 이 강좌에서는 DigitalOcean을 기준으로 설명합니다.
2.1. 서버 준비하기
DigitalOcean에서 Ubuntu 서버를 생성한 후, SSH를 통해 서버에 접근합니다. 서버가 정상적으로 작동하는지 확인합니다. 다음 명령어로 서버의 공인 IP 주소를 확인할 수 있습니다.
curl ifconfig.me
2.2. DNS 설정하기
도메인을 구입한 후, 도메인 관리 패널에서 A 레코드를 추가하여 서버의 IP 주소를 입력합니다. 예를 들어, example.com 도메인을 사용할 경우, A 레코드는 다음과 같이 설정됩니다.
- 호스트: @
- 값: [서버의 IP 주소]
- TTL: 자동
2.3. Django 설정 수정하기
Django 프로젝트의 `settings.py` 파일을 열고, ALLOWED_HOSTS에 도메인을 추가합니다.
ALLOWED_HOSTS = ['example.com', 'www.example.com']
3. HTTPS 적용하기
HTTPS는 보안을 강화하고 SEO(Search Engine Optimization)를 개선하기 위해 필수적입니다. Let’s Encrypt를 사용하여 무료 SSL 인증서를 발급받고, 프로젝트에 적용하는 방법을 설명하겠습니다.
3.1. Certbot 설치하기
Ubuntu 서버에서 SSL 인증서를 발급받기 위해 Certbot을 설치합니다. 다음 명령어를 입력합니다.
sudo apt update
sudo apt install certbot python3-certbot-nginx
3.2. SSL 인증서 발급받기
SSL 인증서를 발급받기 위해 다음 명령어를 입력합니다. 이 때, `example.com`을 본인의 도메인으로 바꿔주세요.
sudo certbot --nginx -d example.com -d www.example.com
인증서 발급 과정이 진행되며, 이메일을 입력하라는 요청이 있을 수 있습니다. 이메일을 입력하고, 이용 약관에 동의합니다. 설치가 완료되면 SSL 인증서가 성공적으로 설치됩니다.
3.3. Nginx 설정 업데이트하기
이제 Nginx 설정 파일을 수정하여 SSL을 적용합니다. 설정 파일은 일반적으로 `/etc/nginx/sites-available/default` 또는 `/etc/nginx/sites-available/example`에 위치합니다. 파일을 열고 다음과 같이 설정합니다.
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3.4. Nginx 재시작하기
설정이 완료되었다면 Nginx를 재시작하여 변경사항을 적용합니다.
sudo systemctl restart nginx
3.5. HTTPS 설정 확인하기
이제 브라우저에서 `https://example.com`으로 접속하여 웹사이트가 정상적으로 HTTPS를 통해 작동하는지 확인합니다. SSL 인증서가 제대로 적용되었다면 보안 자물쇠 아이콘이 표시됩니다.
4. 결론
이번 강좌에서는 Django 서버를 개발하고 도메인을 설정한 후 HTTPS를 적용하는 방법을 알아보았습니다. 보안이 중요한 현대의 웹 환경에서 HTTPS의 필요성을 강조하고, 이를 통해 데이터 전송의 안전성을 확보할 수 있습니다.
다양한 클라우드 서비스와 도메인 설정 방법이 존재하므로, 필요한 서비스에 맞게 적절한 설정을 진행하세요. 다음에는 Django에서 API를 개발하거나 데이터베이스와의 연결 방법에 대해 다루어 보도록 하겠습니다.
감사합니다!