ป้ายกำกับ: UDP

Nginx: HTTP/3 (QUIC )Nginx: HTTP/3 (QUIC )

การตั้งค่า HTTP/3 บน Nginx ช่วยให้เว็บไซต์โหลดเร็วขึ้นอย่างมาก โดยเฉพาะในสภาวะที่อินเทอร์เน็ตไม่เสถียร เพราะเปลี่ยนจากการใช้ TCP มาเป็น UDP ที่ลดขั้นตอนการ “Handshake” ลง


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

HTTP/3 ได้รับการสนับสนุนแบบ Mainline ตั้งแต่เวอร์ชัน 1.25.0 ขึ้นไป คุณสามารถเช็คเวอร์ชันได้ด้วยคำสั่ง
nginx -v

หากเวอร์ชันเก่ากว่านี้ คุณจำเป็นต้องอัปเดต Nginx หรือ Compile ใหม่พร้อมโมดูล
--with-http_v3_module


การตั้งค่าใน Firewall

HTTP/3 วิ่งบนโปรโตคอล UDP พอร์ต 443 คุณต้องเปิดพอร์ตที่ Firewall ก่อน

  • ufw :
    sudo ufw allow 443/udp
  • Cloud (AWS/GCP) :
    ต้องไปเปิด Security Group ให้รับ UDP 443 ด้วย

แก้ไขไฟล์ Configuration

เปิดไฟล์ Config ของ Site คุณ และเพิ่มคำสั่งที่จำเป็นลงใน server block

server {
 # 1. ฟังการเชื่อมต่อ HTTP/3 บน UDP
 listen 443 quic reuseport;
 
 # 2. ฟังการเชื่อมต่อ HTTP/2 และ 1.1 บน TCP ตามปกติ
 listen 443 ssl;
 http2 on; 

 server_name example.com;

 # SSL Settings (ต้องใช้ TLS v1.3 เท่านั้นสำหรับ QUIC) ssl_protocols TLSv1.2 TLSv1.3;
 ssl_certificate /path/to/cert.crt;
 ssl_certificate_key /path/to/cert.key;

 # 3. ส่ง Header บอก Browser ว่า Server นี้รองรับ HTTP/3
 # 'ma=86400' คือการบอกให้จำไว้ 24 ชั่วโมง
 add_header Alt-Svc 'h3=":443"; ma=86400';

 # 4. (Optional) เพิ่มความปลอดภัยและความเร็ว
 add_header QUIC-Status $http3;

 location / {
 root /var/www/html;
 index index.html;
 }
}

ตรวจสอบและ Restart

หลังจากแก้ไขเสร็จแล้ว ให้ตรวจสอบความถูกต้องของ Syntax เสมอ

  1. sudo nginx -t
  2. ถ้าผ่าน ให้สั่ง
    sudo systemctl restart nginx

วิธีทดสอบว่า HTTP/3 ทำงานจริงไหม ?

นื่องจาก Browser จะไม่เปลี่ยนเป็น HTTP/3 ในทันที คุณสามารถเช็คได้ผ่านเครื่องมือออนไลน์

  • HTTP/3 Check: ไปที่เว็บไซต์ http3check.net แล้วใส่ URL ของคุณ
  • Chrome DevTools: กด F12 > Tab Network > คลิกขวาที่หัวตารางเลือก “Protocol” ถ้าสำเร็จจะขึ้นว่า h3

ข้อควรระวัง

OpenSSL: การจะใช้ QUIC ได้อย่างสมบูรณ์ Nginx ต้องถูก Build ร่วมกับ Library ที่รองรับ เช่น BoringSSL, LibreSSL หรือ OpenSSL 3.2+


อ่านเพิ่มเติม