All Products
Search
Document Center

Global Accelerator:HTTP/2 untuk koneksi backend

Last Updated:Jun 22, 2026

Jika Anda menggunakan Global Accelerator untuk layanan HTTPS, Anda dapat mengaktifkan HTTP/2 pada koneksi ke layanan backend guna memanfaatkan fitur-fiturnya untuk meningkatkan performa, mengurangi latensi, dan menurunkan overhead jaringan.

Apa itu HTTP/2

HTTP/2, juga dikenal sebagai HTTP 2.0, merupakan pengembangan dari HTTP/1.1 dengan fitur-fitur baru seperti multiplexing, kompresi header, prioritisasi permintaan, dan server push. Fitur-fitur ini mengatasi keterbatasan HTTP/1.1, mengoptimalkan performa permintaan, sekaligus tetap mempertahankan kompatibilitas semantiknya. Browser modern seperti Chrome, Edge, Safari, dan Firefox telah mendukung HTTP/2.

Keunggulan HTTP/2:

  • Protokol biner: Berbeda dengan HTTP/1.x yang menggunakan penguraian berbasis teks, HTTP/2 membagi seluruh informasi yang ditransmisikan menjadi pesan dan frame dalam format biner. Format ini memberikan ekstensibilitas lebih besar, seperti kemampuan frame untuk membawa data maupun instruksi.

  • Multiplexing: Pada HTTP/1.x, optimasi performa sering kali melibatkan teknik seperti gambar sprite dan penggunaan beberapa domain karena browser membatasi jumlah permintaan konkuren ke satu domain. Ketika sebuah halaman membutuhkan banyak sumber daya, blokir kepala antrian (head-of-line blocking) menyebabkan permintaan baru harus menunggu permintaan lain selesai. HTTP/2 menggunakan lapisan framing biner yang memungkinkan beberapa permintaan dan tanggapan dikirim secara konkuren melalui satu koneksi TCP bersama. Permintaan dan tanggapan tersebut disusun ulang di sisi penerima menggunakan identifier aliran (stream identifiers) dan header. Pendekatan ini menghindari masalah blokir kepala antrian pada versi HTTP sebelumnya dan secara signifikan meningkatkan performa transmisi.

  • Kompresi header: Header permintaan HTTP berisi banyak informasi yang dikirim berulang kali pada setiap permintaan. HTTP/2 menggunakan format HPACK untuk kompresi. Baik client maupun server mempertahankan tabel cache bidang header, dan hanya indeks dari header yang sudah dikenal yang dikirim, sehingga meningkatkan efisiensi dan kecepatan.

Negosiasi HTTP/2

Untuk koneksi HTTPS, client dan server harus menetapkan koneksi Transport Layer Security (TLS) sebelum mengirim data aplikasi. Untuk mendukung HTTP/2, proses jabat tangan (handshake) menggunakan Application-Layer Protocol Negotiation (ALPN) guna menentukan versi protokol yang akan digunakan.

Saat Anda mengaktifkan HTTP/2 di Global Accelerator, sistem tersebut menentukan h2 dalam bidang ALPN pada pesan ClientHello selama proses jabat tangan TLS. Global Accelerator kemudian mengabaikan versi protokol yang dikembalikan oleh server dalam pesan ServerHello, sehingga memaksa koneksi HTTP/2 ke layanan backend.

Kasus penggunaan

Topik ini menggunakan skenario berikut: Sebuah perusahaan berkantor pusat di AS (Silicon Valley) dan meng-host website HTTPS-nya pada Instance ECS Alibaba Cloud. Sebagian besar klien berlokasi di Tiongkok (Hong Kong). Perusahaan tersebut menggunakan Global Accelerator untuk mengatasi masalah jaringan seperti latensi, jitter, dan kehilangan paket akibat ketidakstabilan jaringan publik lintas batas.

Untuk lebih meningkatkan performa website dan pengalaman pengguna, perusahaan berencana mengadopsi protokol HTTP/2.

Secara default, ketika Global Accelerator dikonfigurasi dengan HTTPS sebagai protokol layanan backend, sistem tersebut terhubung ke layanan backend menggunakan HTTP/1.1. Perusahaan kini perlu memodifikasi konfigurasi instans Global Accelerator untuk menentukan HTTP/2 pada koneksi backend agar dapat memanfaatkan sepenuhnya peningkatan performa protokol tersebut.

Batasan

Batasan berikut berlaku saat Anda mengonfigurasi Global Accelerator untuk menggunakan HTTP/2 dalam menghubungkan ke layanan backend:

  • Jika opsi Protocol Version tidak tersedia untuk instans Global Accelerator Anda, instans tersebut mungkin tidak mendukung fitur ini. Untuk mengaktifkannya, hubungi account manager Anda untuk melakukan upgrade instans.

  • Protokol WebSocket tidak didukung.

  • Fitur Server Push pada HTTP/2 tidak didukung.

  • Permintaan gRPC yang berbasis HTTP/2 tidak dapat dipercepat.

Prasyarat

  • Beli atau unggah sertifikat server di Konsol Layanan Manajemen Sertifikat. Untuk informasi lebih lanjut, lihat Beli sertifikat resmi dan Unggah, sinkronkan, dan bagikan sertifikat SSL.

  • Unggah file sertifikat ke server backend Anda. Untuk informasi lebih lanjut, lihat Gunakan Cloud Assistant untuk mengunggah file ke Instance ECS.

  • Server backend Anda telah men-deploy layanan HTTPS pada port 443 dengan versi protokol HTTP/2 diaktifkan.

    Pastikan Anda telah menambahkan aturan untuk mengizinkan lalu lintas inbound pada port TCP 443 di grup keamanan server backend. Untuk informasi lebih lanjut, lihat Tambahkan aturan grup keamanan.

    Contoh: Konfigurasikan layanan HTTPS pada port 443 dan aktifkan HTTP/2 di Nginx pada Instance ECS Alibaba Cloud

    1. Jalankan perintah berikut untuk menginstal Nginx dan men-deploy aplikasi uji coba sederhana.

      yum install -y nginx
      cd /usr/share/nginx/html/
      echo "Hello World ! This is ECS." > index.html
    2. Jalankan perintah berikut untuk membuat direktori bagi sertifikat dan kunci privat.

      mkdir -p /etc/pki/nginx/private/
    3. Jalankan perintah berikut untuk mengedit file konfigurasi Nginx nginx.conf, modifikasi konfigurasi versi protokol, lalu simpan dan keluar.

      vim /etc/nginx/nginx.conf

      Gunakan konfigurasi berikut:

      # Untuk informasi lebih lanjut tentang konfigurasi, lihat:
      #   * Dokumentasi Resmi Bahasa Inggris: http://nginx.org/en/docs/
      #   * Dokumentasi Resmi Bahasa Rusia: http://nginx.org/ru/docs/
      user nginx;
      worker_processes auto;
      error_log /var/log/nginx/error.log;
      pid /run/nginx.pid;
      events {
          worker_connections 1024;
      }
      http {
          log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for" "$server_protocol"';
          access_log  /var/log/nginx/access.log  main;
          sendfile            on;
          tcp_nopush          on;
          tcp_nodelay         on;
          keepalive_timeout   65;
          types_hash_max_size 4096;
          include             /etc/nginx/mime.types;
          default_type        application/octet-stream;
          server {
              # Aktifkan versi protokol HTTP/2.
              listen       443 ssl http2;
              listen       [::]:443 ssl http2;
              server_name  _;
              root         /usr/share/nginx/html;
              # Masukkan path ke file sertifikat Anda.
              ssl_certificate "/etc/pki/nginx/<cert-file-name>.pem";
              # Masukkan path ke file kunci privat sertifikat Anda.
              ssl_certificate_key "/etc/pki/nginx/private/<cert-file-name>.key";
              ssl_session_cache shared:SSL:1m;
              ssl_session_timeout  10m;
              ssl_ciphers PROFILE=SYSTEM;
              ssl_prefer_server_ciphers on;
              error_page 404 /404.html;
                  location = /40x.html {
              }
              error_page 500 502 503 504 /50x.html;
                  location = /50x.html {
              }
          }
      }
    4. Jalankan perintah berikut untuk me-restart layanan Nginx.

      systemctl restart nginx.service
  • Buat instans Global Accelerator, tambahkan server backend sebagai titik akhir, dan atur protokol layanan backend ke HTTPS. Untuk informasi lebih lanjut, lihat Buat dan kelola instans Global Accelerator standar.

  • Pastikan domain Anda dipetakan ke alamat CNAME yang diberikan oleh instans Global Accelerator. Untuk informasi lebih lanjut, lihat Tambahkan Rekaman CNAME.

Konfigurasikan HTTP/2 untuk koneksi backend

Bagian ini hanya menjelaskan item konfigurasi utama yang relevan dengan skenario ini. Untuk informasi lebih lanjut tentang pengaturan kelompok titik akhir, lihat Tambahkan dan kelola kelompok titik akhir untuk pendengar perutean cerdas.

  1. Masuk ke Konsol Global Accelerator.

  2. Pada halaman Instances, temukan instans GA yang ingin Anda kelola dan klik Configure Listener di kolom Actions.

  3. Pada tab Listeners, temukan pendengar target, lalu klik Modify Endpoint Group di kolom Actions.

  4. Pada langkah wizard Configure Listener & Protocol, klik Next.

  5. Pada langkah wizard Configure Endpoint Group, atur IP Version ke HTTP/2, lalu klik Next.

    Atur Backend Service Protocol ke HTTPS dan Protocol Version ke HTTP/2.

  6. Pada langkah Configuration Review, konfirmasi konfigurasi dan klik Submit.

Verifikasi hasil

Untuk memverifikasi bahwa HTTP/2 telah diaktifkan, lakukan langkah-langkah berikut sebelum dan sesudah Anda mengubah versi protokol.

  1. Dari klien di wilayah Tiongkok (Hong Kong), buka browser dan masukkan https://<nama domain yang dipercepat>. Anda seharusnya dapat mengakses layanan backend secara normal.

  2. Pada server backend di wilayah AS (Silicon Valley), buka jendela command line dan jalankan perintah berikut untuk melihat catatan akses terbaru.

    Catatan akses menunjukkan versi protokol yang digunakan untuk meneruskan permintaan ke server backend.

    tail -n 1 /var/log/nginx/access.log

    Sebelum Anda mengonfigurasi versi protokol, log akses menunjukkan bahwa permintaan asal menggunakan protokol HTTP/1.1.

    [root@iZxxx ~]# tail -n 1 /var/log/nginx/access.log
    172.20.xxx - - [30/Jul/2024:14:40:40 +0800] "GET / HTTP/1.1" 200 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0 Safari/537.36 Edg/126.0.0.0" "47.76.xxx"

    Setelah Anda mengonfigurasi versi protokol ke HTTP/2, log akses menunjukkan bahwa permintaan asal menggunakan HTTP/2.0.

    [root@iZrj95wxxx xxx  ~]# tail -n 1 /var/log/nginx/access.log
    172.20.xxx.xxx - - [30/Jul/2024:14:42:55 +0800] "GET / HTTP/2.0" 200 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0 Safari/537.36 Edg/126.0.0" "47.76.xxx.xxx"

Dokumen terkait

Tutorial

Referensi API

  • CreateEndpointGroup: Membuat kelompok titik akhir. Gunakan parameter EndpointProtocolVersion untuk menentukan versi protokol saat menghubungkan ke layanan backend.

  • UpdateEndpointGroup: Memodifikasi konfigurasi bisnis kelompok titik akhir. Gunakan parameter EndpointProtocolVersion untuk menentukan versi protokol saat menghubungkan ke layanan backend.

  • DeleteEndpointGroup: Menghapus kelompok titik akhir.