All Products
Search
Document Center

Alibaba Cloud Service Mesh:Gunakan HTTP/3 untuk mengakses gerbang masuk ASM

Last Updated:Mar 11, 2026

HTTP/3 menggantikan TCP dengan protokol QUIC pada lapisan transport, menghilangkan blokir kepala antrian (head-of-line blocking), mengurangi latensi koneksi hingga nol round trip (0-RTT), dan mempertahankan koneksi saat terjadi perubahan jaringan, seperti pergantian dari Wi-Fi ke jaringan seluler. Gerbang Service Mesh (ASM) mendukung HTTP/3, sehingga Anda dapat mengekspos layanan melalui QUIC untuk meningkatkan performa dan stabilitas layanan pada beban kerja seluler dan yang sensitif terhadap latensi.

KemampuanHTTP/2 (TCP)HTTP/3 (QUIC/UDP)
Latensi jabat tanganJabat tangan TCP + jabat tangan TLS terpisahPembentukan koneksi 0-RTT dengan TLS 1.3 yang terintegrasi dalam QUIC
MultiplexingBeberapa aliran berbagi satu koneksi TCP; kehilangan satu paket memblokir semua aliranAliran QUIC independen; kehilangan paket pada satu aliran tidak memblokir aliran lainnya
Migrasi koneksiKoneksi terputus ketika IP klien berubah (misalnya, dari Wi-Fi ke seluler)Koneksi tetap aktif meskipun IP berubah, berkat connection ID yang tidak bergantung pada tupel IP/port
KeamananTLS bersifat opsional pada beberapa implementasiTLS 1.3 wajib digunakan untuk semua koneksi

Panduan ini menjelaskan cara mengaktifkan HTTP/3 pada gerbang masuk ASM, menambahkan pendengar UDP untuk trafik QUIC, mengonfigurasi TLS, dan memverifikasi konektivitas menggunakan curl.

Sebelum memulai

Langkah 1: Aktifkan HTTP/3 di Konsol ASM

  1. Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih ASM Instance > Base Information.

  3. Di pojok kanan atas halaman Base Information, klik Settings.

  4. Di panel Settings Update, pilih Enable HTTP/3.

Langkah 2: Tambahkan pendengar UDP ke gerbang masuk

QUIC berjalan di atas UDP. Untuk menerima trafik HTTP/3, tambahkan pendengar UDP ke gerbang masuk selain pendengar TCP yang sudah ada.

Edit resource IstioGateway untuk menambahkan port UDP. Contoh berikut menambahkan pendengar UDP pada port 444:

apiVersion: istio.alibabacloud.com/v1beta1
kind: IstioGateway
metadata:
  labels:
    asm-gateway-type: ingress
  name: ingressgateway
  namespace: istio-system
spec:
  ......
  ports:
    - name: http-0
      port: 80
      protocol: HTTP
      targetPort: 80
    # Tambahkan pendengar UDP untuk trafik QUIC.
    # Anda dapat menggunakan port yang sama dengan pendengar HTTPS Anda (misalnya 443)
    # karena ASM mendukung pendengar TCP dan UDP pada port yang sama.
    - name: udp
      port: 444
      protocol: UDP
      targetPort: 444
  ......
Catatan

ASM mendukung pendengar TCP dan UDP pada port yang sama. Misalnya, jika port 443 sudah melayani HTTPS melalui TCP, Anda dapat menambahkan pendengar UDP pada port 443 untuk trafik QUIC tanpa konflik.

Langkah 3: Konfigurasikan gateway Istio dengan TLS

QUIC mewajibkan TLS 1.3. Konfigurasikan sertifikat TLS pada gateway Istio untuk port QUIC dengan menerapkan resource Gateway berikut:

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: httpbin
  namespace: default
spec:
  selector:
    istio: ingressgateway
  servers:
    # Pendengar HTTP pada port 80
    - hosts:
        - '*'
      port:
        name: test
        number: 80
        protocol: HTTP
    # Pendengar QUIC/HTTP3 pada port 444 dengan TLS.
    # Atur protokol ke HTTPS agar gateway menghentikan tugas TLS,
    # yang wajib digunakan oleh QUIC.
    - hosts:
        - '*'
      port:
        name: quic
        number: 444
        protocol: HTTPS
      tls:
        # Merujuk ke sertifikat yang dibuat pada prasyarat.
        credentialName: aliyun.com.cert
        mode: SIMPLE

Setelah konfigurasi ini diterapkan, gateway secara otomatis menambahkan header respons Alt-Svc (misalnya, alt-svc: h3=":444"; ma=86400) ke respons HTTP. Browser dan klien HTTP menggunakan header Alt-Svc untuk mengetahui ketersediaan HTTP/3 dan meningkatkan permintaan berikutnya ke QUIC. Inilah cara layanan yang menghadap internet mengiklankan dukungan HTTP/3 — untuk layanan internal di mana klien dikonfigurasi eksplisit untuk HTTP/3, header ini hanya bersifat informatif.

Langkah 4: Verifikasi konektivitas HTTP/3

Periksa dukungan HTTP/3 pada curl

Sebagian besar instalasi curl bawaan tidak menyertakan dukungan HTTP/3. Periksa apakah binary curl Anda mendukungnya:

curl --version | grep http3

Jika output mencantumkan http3, berarti curl Anda mendukung HTTP/3:

curl 8.9.0-DEV (aarch64-apple-darwin23.5.0) libcurl/8.9.0-DEV quictls/3.1.4 zlib/1.2.12 libidn2/2.3.7 nghttp2/1.59.0 ngtcp2/1.2.0 nghttp3/1.1.0

Jika tidak ada output, berarti curl Anda tidak mendukung HTTP/3. Anda dapat membuat ulang curl versi yang mendukung HTTP/3. Untuk informasi lebih lanjut, lihat Build with quictls.

Kirim permintaan uji

Ganti <IP-address-of-ASM-gateway> dengan IP eksternal gerbang masuk ASM Anda:

curl -k --http3-only \
  -H Host:aliyun.com \
  --resolve aliyun.com:444:<IP-address-of-ASM-gateway> \
  https://aliyun.com:444/headers -v

Respons sukses akan menampilkan using HTTP/3 dan status HTTP/3 200:

......
* Connected to aliyun.com (xxx.xx.xx.x) port 444
* using HTTP/3
* [HTTP/3] [0] OPENED stream for https://aliyun.com:444/headers
* [HTTP/3] [0] [:method: GET]
* [HTTP/3] [0] [:scheme: https]
* [HTTP/3] [0] [:authority: aliyun.com]
* [HTTP/3] [0] [:path: /headers]
* [HTTP/3] [0] [user-agent: curl/8.9.0-DEV]
* [HTTP/3] [0] [accept: */*]
> GET /headers HTTP/3
> Host:aliyun.com
> User-Agent: curl/8.9.0-DEV
> Accept: */*
>
* Request completely sent off
* old SSL session ID is stale, removing
< HTTP/3 200
< server: istio-envoy
< date: Wed, 26 Jun 2024 07:40:07 GMT
< content-type: application/json
< content-length: 460
< access-control-allow-origin: *
< access-control-allow-credentials: true
< x-envoy-upstream-service-time: 1
< alt-svc: h3=":444"; ma=86400
<
{
  "headers": {
    "Accept": "*/*",
    "Host": "aliyun.com",
    "Transfer-Encoding": "chunked",
    "User-Agent": "curl/8.9.0-DEV",
    "X-Envoy-Attempt-Count": "1",
    "X-Envoy-External-Address": "xx.xx.xx.xx",
    "X-Forwarded-Client-Cert": "xxxxxxx"
  }
}
* Connection #0 to host aliyun.com left intact

Header alt-svc: h3=":444"; ma=86400 mengonfirmasi bahwa gateway mengiklankan ketersediaan HTTP/3. Browser dan klien yang kompatibel menggunakan header ini untuk menemukan dan secara otomatis meningkatkan ke HTTP/3 pada permintaan berikutnya.

Lihat juga