Hypertext Transfer Protocol Versi 2 (HTTP/2 ) adalah versi terbaru dari protokol HTTP, diterbitkan sebagai standar IETF di RFC 7540 pada tahun 2015. Fokus protokol adalah pada kinerja; khususnya, latensi yang dirasakan pengguna akhir, penggunaan sumber daya jaringan dan server. Salah satu tujuan utama adalah untuk memungkinkan penggunaan koneksi tunggal dari browser ke situs Web. Protokol ini kompatibel dengan versi sebelumnya, sehingga metode HTTP, kode status, dan semantik sama dengan versi protokol sebelumnya. Nginx memiliki dukungan HTTP/2 sejak versi 1.9.5. Dalam tutorial ini, saya akan berasumsi bahwa Anda sudah memiliki konfigurasi TLS yang berfungsi, dan bahwa Anda telah menginstal versi Nginx di distribusi Linux pilihan Anda, dan bahwa Anda tahu cara menggunakan Let's Encrypt, atau Anda tahu cara mengeluarkan sertifikat yang ditandatangani sendiri.
Persyaratan
Untuk mengaktifkan HTTP/2 di Nginx, Anda harus memenuhi persyaratan berikut:
- Nginx versi 1.9.5 atau lebih baru. Anda dapat memeriksa versi Nginx Anda dengan menjalankan (
nginx -v
) perintah. - OpenSSL versi 1.0.2 atau lebih tinggi. Anda dapat memeriksa versi OpenSSL dengan menjalankan perintah (Versi OpenSSL).
- Sertifikat SSL/TLS dari Let's Encrypt atau sertifikat yang ditandatangani sendiri.
- Protokol TLS 1.2 atau lebih tinggi diaktifkan. Jika tidak, Anda tidak akan dapat menggunakan HTTP/2. Implementasi HTTP/2 harus menggunakan TLS versi 1.2 atau lebih tinggi untuk HTTP/2 melalui TLS.
Aktifkan HTTP/2 di Nginx
Untuk mengaktifkan HTTP/2 di Nginx, kita harus menambahkan http2
parameter ke listen
arahan di host virtual kami:
listen 443 ssl http2;
Dan muat ulang konfigurasi Nginx Anda:
sudo systemctl reload nginx.service
Berikut adalah konfigurasi server virtual minimal yang dapat digunakan untuk mengaktifkan HTTP/2 di beberapa virtual host:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
root /path/to/public;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols TLSv1.2;
}
Untuk memeriksa apakah server Anda mendukung HTTP/2, Anda dapat menggunakan alat pengembang browser atau file log Nginx. Di bawah ini adalah tangkapan layar dari browser Google Chrome yang menunjukkan HTTP/2 berfungsi di domain https://example.com.
Anda juga dapat menggunakan variabel tersemat Nginx $http2 untuk melihat protokol yang dinegosiasikan. Variabel ini akan mencatat: “h2
” untuk HTTP/2 melalui TLS, “h2c
” untuk HTTP/2 melalui cleartext TCP, atau string kosong di log akses Nginx jika dikonfigurasi untuk melakukannya.
Dan hanya itu yang diperlukan untuk mengaktifkan HTTP/2 di server Nginx Anda.
Tautan
- RFC 7540
- HTTP/2