全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Aktifkan kompresi data untuk layanan gateway masuk dari instance ASM

更新时间:Jul 06, 2025

Setelah mengaktifkan kompresi data untuk layanan gateway masuk dari instance Service Mesh (ASM), server akan menekan konten respons untuk permintaan HTTP. Hal ini mengurangi waktu respons dan konsumsi trafik. Topik ini menjelaskan cara mengaktifkan kompresi data untuk layanan gateway masuk dari instance ASM.

Prasyarat

Prosedur

  1. Terapkan aplikasi NGINX di cluster ACK.

    1. Buat file nginx.yaml dengan konten berikut:

      apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
      kind: Deployment
      metadata:
        name: nginx-deployment
      spec:
        selector:
          matchLabels:
            app: nginx
        replicas: 1
        template:
          metadata:
            labels:
              app: nginx
              sidecarset-injected: "true"
          spec:
            containers:
            - name: nginx
              image: nginx:1.14.2
              ports:
              - containerPort: 80
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: nginx
      spec:
        ports:
          - name: http
            port: 80
            protocol: TCP
            targetPort: 80
        selector:
          app: nginx
        type: ClusterIP
    2. Jalankan perintah berikut untuk menerapkan aplikasi NGINX:

      kubectl apply -f nginx.yaml
  2. Buat layanan virtual dan gateway Istio.

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

    2. Di halaman Mesh Management, temukan instance ASM yang ingin dikonfigurasi. Klik nama instance ASM atau klik Manage di kolom Actions.

    3. Di halaman detail instance ASM, pilih Traffic Management Center > VirtualService di panel navigasi kiri. Di halaman yang muncul, klik Create from YAML.

    4. Di halaman Create, pilih namespace, salin konten berikut ke editor kode, lalu klik Create.

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: nginx
        namespace: default
      spec:
        gateways:
          - nginx-gateway
        hosts:
          - '*'
        http:
          - match:
              - uri:
                  exact: /
            route:
              - destination:
                  host: nginx
                  port:
                    number: 80
    5. Di halaman detail instance ASM, pilih ASM Gateways > Gateway di panel navigasi kiri. Di halaman yang muncul, klik Create from YAML.

    6. Di halaman Create, pilih namespace, salin konten berikut ke editor kode, lalu klik Create.

      apiVersion: networking.istio.io/v1beta1
      kind: Gateway
      metadata:
        name: nginx-gateway
        namespace: default
      spec:
        selector:
          istio: ingressgateway
        servers:
          - hosts:
              - '*'
            port:
              name: http
              number: 80
              protocol: HTTP
  3. Aktifkan kompresi data untuk layanan gateway masuk dari instance ASM.

    1. Di halaman detail instance ASM, pilih ASM Gateways > Ingress Gateway di panel navigasi kiri.

    2. Di halaman Ingress Gateway, temukan gateway masuk yang ingin digunakan dan klik YAML.

    3. Di kotak dialog Edit, tambahkan konten berikut ke kode YAML dan klik OK.

      compression:
        content_type:
          - text/html
        enabled: true
        gzip:
          memory_level: 9
        remove_accept_encoding_header: true

      Tabel berikut menjelaskan beberapa bidang. Untuk informasi lebih lanjut tentang bidang-bidang tersebut, lihat Buat dan Kelola Gateway Masuk Menggunakan Kubernetes API.

      Bidang

      Deskripsi

      compression.content_type

      Header Content-Type yang akan dikompresi.

      compression.enabled

      Menentukan apakah akan mengaktifkan kompresi data untuk layanan gateway masuk.

      compression.gzip

      Format kompresi dan jumlah memori yang tersedia untuk kompresi.

      compression.remove_accept_encoding_header

      • Menentukan apakah akan menghapus header Accept-Encoding dari permintaan HTTP yang dikirim oleh klien sebelum gateway masuk meneruskan permintaan HTTP ke layanan upstream. Jika parameter diatur ke true, header Accept-Encoding dihapus dari permintaan HTTP.

      • Jika parameter diatur ke false, header Accept-Encoding tetap ada dalam permintaan HTTP.

      Konfigurasi contoh:

      Compression

Verifikasi bahwa kompresi data diaktifkan untuk layanan gateway masuk

  1. Buka halaman debugging browser. Dalam contoh ini, Google Chrome digunakan.

    1. Klik ikon Settings icon di pojok kanan atas Google Chrome.

    2. Pilih More tools > Developer tools.

  2. Akses aplikasi NGINX.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, temukan cluster yang diinginkan dan klik namanya. Di panel kiri, pilih Network > Services.

    3. Di bagian atas halaman Services, pilih istio-system dari daftar drop-down Namespace. Temukan istio_ingressgateway dan lihat alamat IP dengan port 80 di kolom External IP.

    4. Di panel DevTools, masukkan titik akhir yang diperoleh dari layanan istio_ingressgateway.

      Jika nilai parameter content-encoding adalah gzip di bagian Response Headers, seperti yang ditunjukkan pada gambar berikut, itu menunjukkan bahwa kompresi data diaktifkan untuk layanan gateway masuk. Compression