คู่มือการติดตั้งและคอนฟิกส่งต่อสตรีมทั้งรูปแบบ MPEG-TS (.ts) และ HLS (.m3u8) ผ่านพอร์ต 80
อัปเดตระบบและติดตั้ง Nginx เว็บเซิร์ฟเวอร์:
sudo apt update
sudo apt install -y nginx
สร้างไฟล์คอนฟิกสำหรับส่งต่อทราฟฟิกไปยัง MistServer (พอร์ต 8080) โดยปิดบัฟเฟอร์เพื่อป้องกันอาการภาพดีเลย์และเปิดท่อยาวสำหรับ .ts:
sudo bash -c 'cat << "EOF" > /etc/nginx/sites-available/mist-proxy
server {
listen 80;
server_name 172.30.100.9;
# ปรับ Timeout รองรับการรับชมไฟล์ .ts แบบสตรีมมิ่งต่อเนื่อง
proxy_connect_timeout 10s;
proxy_send_timeout 86400s;
proxy_read_timeout 86400s;
send_timeout 86400s;
# 1. จัดการการเรียกดูแบบ MPEG-TS ตรง (เช่น /pptv.ts หรือ /onehd.ts)
location ~* ^/([a-zA-Z0-9_-]+)\.ts$ {
proxy_pass http://127.0.0.1:8080/$1.ts;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# ปิด Buffering เพื่อให้สตรีมไหลต่อเนื่องทันที
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "";
# รองรับ CORS สำหรับเว็บเพลเยอร์
add_header Access-Control-Allow-Origin * always;
}
# 2. จัดการการเรียกดูแบบ HLS (เช่น /hls/pptv/index.m3u8)
location /hls/ {
proxy_pass http://127.0.0.1:8080/hls/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
add_header Access-Control-Allow-Origin * always;
}
}
EOF'
สร้าง Symbolic link เพื่อเปิดใช้งานคอนฟิก และตรวจสอบความถูกต้องของไวยากรณ์:
sudo ln -sf /etc/nginx/sites-available/mist-proxy /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
/etc/nginx/sites-enabled/default ใช้งานพอร์ต 80 ชนกันอยู่ ให้ลบออกด้วยคำสั่ง sudo rm /etc/nginx/sites-enabled/default แล้ว reload nginx อีกครั้ง
| รูปแบบโปรโตคอล | URL ปลายทางผ่าน Nginx (Client เรียกดู) | ปลายทาง MistServer ภายใน |
|---|---|---|
| MPEG-TS (.ts) | http://172.30.100.9/pptv.ts |
http://127.0.0.1:8080/pptv.ts |
| HLS (.m3u8) | http://172.30.100.9/hls/pptv/index.m3u8 |
http://127.0.0.1:8080/hls/pptv/index.m3u8 |
ทดสอบเรียกไฟล์ TS จาก Nginx:
curl -I http://172.30.100.9/pptv.ts
ทดสอบดึง Playlist HLS:
curl -s http://172.30.100.9/hls/pptv/index.m3u8 | head -n 10