✅ 1. Nginx 기반 동영상 콘텐츠 서버 구축
🔹 1️⃣ 기본 구성
서버에 Nginx만 설치하고, /var/www/html/videos/ 같은 디렉터리에 동영상을 업로드한 후, 웹사이트에서 해당 파일을 직접 제공하는 방식입니다.
📌 설정 방법 (Ubuntu 기준)
sudo apt update && sudo apt install nginx -y
sudo mkdir -p /var/www/html/videos
sudo chmod -R 755 /var/www/html/videos
📌 동영상 업로드 경로 예시
sudo cp sample.mp4 /var/www/html/videos/
📌 Nginx 설정 수정 (/etc/nginx/sites-available/default)
server {
listen 80;
server_name yourdomain.com;
location /videos/ {
root /var/www/html;
add_header Access-Control-Allow-Origin *;
}
}
📌 Nginx 재시작
sudo systemctl restart nginx
📌 웹사이트에서 동영상 요청 예시
<video controls>
<source src="http://yourdomain.com/videos/sample.mp4" type="video/mp4">
</video>
🔹 2️⃣ HLS 스트리밍 적용 (대역폭 절감)
MP4 파일을 직접 제공하는 대신, HLS 방식으로 스트리밍하면 대역폭을 절감하고 재생 성능을 향상시킬 수 있습니다.
📌 FFmpeg를 이용한 HLS 변환 (MP4 → HLS)
ffmpeg -i sample.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls sample.m3u8
📌 변환된 파일 업로드 (sample.m3u8, sample0.ts, sample1.ts 등)
sudo mv sample.m3u8 /var/www/html/videos/
sudo mv sample*.ts /var/www/html/videos/
📌 웹사이트에서 HLS 스트리밍 적용 (hls.js 활용)
<video id="video" controls></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
var video = document.getElementById('video');
if (Hls.isSupported()) {
var hls = new Hls();
hls.loadSource("http://yourdomain.com/videos/sample.m3u8");
hls.attachMedia(video);
}
</script>
🔹 3️⃣ 캐싱 및 성능 최적화
사용자가 같은 동영상을 반복해서 보는 경우, 캐싱을 적용하면 서버 부하를 줄일 수 있습니다.
📌 Nginx 캐싱 적용 (/etc/nginx/nginx.conf)
location /videos/ {
root /var/www/html;
expires max;
add_header Cache-Control "public, max-age=31536000";
}
📌 Gzip 압축 활성화 (/etc/nginx/nginx.conf)
gzip on;
gzip_types video/mp4 application/vnd.apple.mpegurl;
📌 Nginx 재시작
sudo systemctl restart nginx
'메모장' 카테고리의 다른 글
Nginx 기반 동영상 콘텐츠 서버 보안 설정 (0) | 2025.03.27 |
---|