13 มิถุนายน 2026

คู่มือการติดตั้ง LiveKit Server บน Ubuntu พร้อม Apache Reverse Proxy

1_O8qUvKq-0BZYPa14ydUf1A

อ้างอิง


1. เตรียมระบบ Ubuntu

อัปเดตแพ็กเกจ

sudo apt update
sudo apt upgrade -y

ติดตั้งเครื่องมือพื้นฐาน

sudo apt install -y curl wget unzip

2. ติดตั้ง LiveKit Server

ดาวน์โหลด LiveKit เวอร์ชันล่าสุด

wget https://github.com/livekit/livekit/releases/latest/download/livekit-server_linux_amd64.tar.gz

แตกไฟล์

tar -xzf livekit-server_linux_amd64.tar.gz

ย้ายไฟล์ไปยังระบบ

sudo mv livekit-server /usr/local/bin/
sudo chmod +x /usr/local/bin/livekit-server

ตรวจสอบเวอร์ชัน

livekit-server --version

3. สร้างไฟล์ Config

สร้างไฟล์

sudo mkdir -p /etc/livekit
sudo nano /etc/livekit/livekit.yaml

ตัวอย่าง

port: 7880

rtc:
  tcp_port: 7881
  use_external_ip: true

keys:
  devkey: secret

logging:
  level: info

4. เริ่มต้น LiveKit

ทดสอบแบบ Development

livekit-server --dev

หรือ

livekit-server --config /etc/livekit/livekit.yaml

ตรวจสอบ

curl http://127.0.0.1:7880

ผลลัพธ์

{"status":"OK"}

ตรวจสอบ Port

sudo ss -lntp | grep 7880

ควรพบ

LISTEN *:7880

5. ติดตั้ง Apache Modules ที่จำเป็น

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl

Restart Apache

sudo systemctl restart apache2

ตรวจสอบ

apachectl -M | grep proxy

ควรพบ

proxy_module
proxy_http_module
proxy_wstunnel_module

6. ตั้งค่า Apache Reverse Proxy

ตัวอย่าง VirtualHost

<VirtualHost *:*>
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
</VirtualHost>

<VirtualHost *:80>
    ServerName video.example.com
    Redirect permanent / https://video.example.com/
</VirtualHost>

<VirtualHost *:443>

    Protocols h2 http/1.1

    ProxyPreserveHost On

    ProxyPass / http://127.0.0.1:7880/
    ProxyPassReverse / http://127.0.0.1:7880/

    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"

    RewriteEngine On

    RewriteCond %{HTTP:Upgrade} websocket [NC]
    RewriteCond %{HTTP:Connection} upgrade [NC]
    RewriteRule ^/(.*)$ ws://127.0.0.1:7880/$1 [P,L]

    ServerName video.example.com

    SSLEngine On
    SSLProxyEngine On

    SSLCertificateFile /path/to/fullchain.pem
    SSLCertificateKeyFile /path/to/privkey.pem

</VirtualHost>

หมายเหตุสำคัญ

หากไม่กำหนดส่วนนี้

RewriteEngine On

RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/(.*)$ ws://127.0.0.1:7880/$1 [P,L]

LiveKit จะไม่สามารถสร้าง WebSocket Signaling Connection ได้

และจะพบ Error

Websocket connection could not be established

7. เปิด Firewall

เปิดพอร์ตที่จำเป็น

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 7881/tcp
sudo ufw allow 50000:60000/udp

หรือเปิดใน Cloud Firewall ของผู้ให้บริการ VPS

พอร์ตที่จำเป็น

80/TCP
443/TCP
7881/TCP
50000-60000/UDP

8. ทดสอบผ่าน Browser

ตรวจสอบ Reverse Proxy

เปิด

https://video.example.com

ควรแสดง

OK

หรือ

{"status":"OK"}

9. ทดสอบด้วย LiveKit Connection Test

เปิด

https://livekit.com/webrtc/connection-test

กรอก

LiveKit URL:
wss://video.example.com

ใส่ Room Token

หากทุกอย่างถูกต้อง จะผ่านการทดสอบดังนี้

Connecting to signal connection via WebSocket
PASS

Establishing WebRTC connection
PASS

Can connect via TURN
PASS

Can publish audio
PASS

Can publish video
PASS

10. ทดสอบด้วย LiveKit Example App

เปิด

https://example.livekit.io

เลือก

Custom Server

กรอก

wss://video.example.com

ใส่ Token ที่สร้างจาก LiveKit

กด Connect

หากเชื่อมต่อได้สำเร็จ จะสามารถเข้าห้อง Video Call ได้ทันที


11. สร้าง Access Token

ติดตั้ง LiveKit CLI

sudo apt install -y jq

curl -sSL https://get.livekit.io/cli | bash

สร้าง Token

lk token create \
    --api-key devkey \
    --api-secret secret \
    --join \
    --room test-room \
    --identity user1 \
    --valid-for 24h

12. การตรวจสอบปัญหาเบื้องต้น

ตรวจสอบว่า LiveKit ทำงาน

curl http://127.0.0.1:7880

ตรวจสอบ Port

sudo ss -lntp | grep 7880

ตรวจสอบ Apache

curl -vk https://video.example.com

ดู Log Apache

tail -f /var/log/apache2/error.log

หรือ

tail -f /path/to/helloapp-error.log

สรุป

สำหรับการใช้งาน Production

  • ใช้ HTTPS เสมอ
  • ใช้ URL แบบ wss://
  • เปิดพอร์ต UDP 50000-60000
  • เปิด TCP 7881
  • ตั้งค่า Apache ให้รองรับ WebSocket Upgrade
  • ทดสอบด้วย LiveKit Connection Test ก่อนนำไปใช้งานจริง
  • เหมาะสำหรับ .NET MAUI, ASP.NET Core และระบบ Telemedicine