Tutorial NGINX HTTP/3 QUIC pada Linux

calendar_today
schedule 3 min read

Tutorial NGINX HTTP/3 QUIC pada Linux

Apa itu HTTP/3 dan QUIC?

Sebelum kita mulai, yuk kenalan dulu sama HTTP/3 dan QUIC. HTTP/3 adalah versi terbaru dari protokol HTTP yang digunakan untuk mengirim data di web. Bedanya sama HTTP/2 atau HTTP/1.1, HTTP/3 pake protokol transport baru bernama QUIC (Quick UDP Internet Connections). QUIC ini dibangun di atas UDP, bukan TCP, yang bikin koneksi lebih cepat dan lebih aman. Jadi, kalo lo pake HTTP/3, website lo bakal lebih cepet dan lebih stabil, apalagi kalo koneksi internetnya nggak stabil.

Persiapan

Sebelum mulai, pastiin dulu lo udah punya:

  1. Server Linux: Bisa Ubuntu, Debian, CentOS, atau distribusi lain.
  2. Akses root: Biar bisa install dan konfigurasi semua yang diperlukan.
  3. Domain: Buat ngetes HTTP/3, lo butuh domain dengan sertifikat SSL/TLS. Bisa pake Let’s Encrypt buat dapetin sertifikat gratis.

Langkah 1: Install NGINX dengan Dukungan HTTP/3

Pertama, lo perlu install NGINX dengan dukungan HTTP/3. Sayangnya, NGINX versi stabil saat ini belum support HTTP/3 secara resmi, jadi kita perlu build dari source dengan patch QUIC.

  1. Install Dependensi:

    code
    sudo apt update
    sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
  2. Download Source NGINX dan Patch QUIC:

    code
    wget https://nginx.org/download/nginx-1.25.3.tar.gz
    tar xzf nginx-1.25.3.tar.gz
    git clone --recursive https://github.com/cloudflare/quiche
  3. Build NGINX dengan QUIC:

    code
    cd nginx-1.25.3
    ./configure --prefix=/usr/local/nginx \
                --with-http_v3_module \
                --with-http_ssl_module \
                --with-http_v2_module \
                --with-openssl=../quiche/deps/boringssl \
                --with-quiche=../quiche
    make
    sudo make install

Langkah 2: Konfigurasi NGINX untuk HTTP/3

Setelah NGINX terinstall, saatnya konfigurasi.

  1. Buat Konfigurasi Server: Buka file konfigurasi NGINX di /usr/local/nginx/conf/nginx.conf dan tambahkan konfigurasi berikut di dalam blok http:

    code
    server {
        listen 443 ssl;
        listen 443 quic reuseport;
    
        ssl_certificate /path/to/your/certificate.crt;
        ssl_certificate_key /path/to/your/private.key;
    
        ssl_protocols TLSv1.3;
        ssl_prefer_server_ciphers on;
    
        add_header Alt-Svc 'h3=":443"; ma=86400';
        add_header QUIC-Status $http3;
    
        location / {
            root /path/to/your/website;
            index index.html;
        }
    }

    Ganti /path/to/your/certificate.crt dan /path/to/your/private.key dengan path ke sertifikat SSL lo. Juga ganti /path/to/your/website dengan path ke direktori website lo.

  2. Restart NGINX:

    code
    sudo /usr/local/nginx/sbin/nginx -s stop
    sudo /usr/local/nginx/sbin/nginx

Langkah 3: Verifikasi HTTP/3

Terakhir, kita perlu ngetes apakah HTTP/3 udah berjalan dengan baik.

  1. Cek dengan Browser: Buka website lo di browser yang support HTTP/3 (seperti Chrome atau Firefox). Buka DevTools (F12), lalu ke tab “Network”. Refresh halaman, dan lihat kolom “Protocol”. Harusnya ada “h3” atau “http/2+quic/99”.

  2. Cek dengan curl:

    code
    curl -I --http3 https://yourdomain.com

    Ganti yourdomain.com dengan domain lo. Kalo berhasil, lo bakal liat header HTTP/3.

Troubleshooting

Kalo ada masalah, cek hal berikut:

  • Pastiin sertifikat SSL lo valid dan path-nya bener di konfigurasi NGINX.
  • Pastiin port 443 udah dibuka di firewall.
  • Cek log error NGINX di /usr/local/nginx/logs/error.log buat liat pesan error.

Sekian tutorial singkat buat setup NGINX dengan HTTP/3 QUIC di Linux. Semoga lancar dan website lo makin kenceng!

A

Written by Ariful

Full-stack engineer obsessed with web performance.