All Products
Search
Document Center

Alibaba Cloud Service Mesh:Migrasi konfigurasi NGINX umum ke gerbang ASM

Last Updated:Mar 12, 2026

Setiap parameter ConfigMap NGINX Ingress Controller dipetakan ke satu atau beberapa pengaturan Istio atau Envoy pada gerbang Service Mesh (ASM). Tabel dalam topik ini mencakup parameter yang paling umum digunakan beserta padanan ASM-nya. Untuk daftar lengkap parameter, lihat referensi ConfigMap Ingress NGINX.

Perbedaan konfigurasi gerbang ASM dengan NGINX

NGINX mengonsolidasikan semua pengaturan dalam satu ConfigMap, sedangkan ASM membagi konfigurasi ke dalam tiga jenis resource Istio:

Sumber daya IstioYang DikendalikanPadanan khas di NGINX
GatewayPort listener, terminasi TLS, pengalihan HTTPSssl-redirect
VirtualServiceAturan routing, penulisan ulang path, timeout per ruteAnotasi tingkat rute
DestinationRulePooling koneksi, keepalive, pemutusan sirkuitkeep-alive-requests, proxy-connect-timeout, upstream-keepalive-*, max-worker-connections

Untuk menerapkan pengaturan yang telah dipetakan, buat atau perbarui resource Istio yang sesuai di kluster Anda.

Parameter koneksi dan keepalive

Parameter ini mengontrol pooling koneksi, perilaku keepalive, dan batas koneksi. Di ASM, sebagian besar dipetakan ke bagian connectionPool dalam DestinationRule.

Parameter NGINXPerilaku NGINXPadanan ASM
keep-alive-requestsJumlah maksimum permintaan per koneksi keepalive. Koneksi akan ditutup setelah mencapai batas ini.connectionPool.maxRequestsPerConnection dalam DestinationRule.
max-worker-connectionsJumlah maksimum koneksi simultan per proses worker NGINX.connectionPool.tcp.maxConnections dalam DestinationRule. Menetapkan jumlah maksimum koneksi ke satu host tujuan.
upstream-keepalive-connectionsJumlah maksimum koneksi keepalive idle yang di-cache per proses worker.connectionPool.tcp.maxConnections dalam DestinationRule.
Catatan

Bidang ini mengontrol jumlah total koneksi ke suatu host, bukan hanya koneksi idle. Pemindahan nilai secara langsung 1:1 tidak tepat karena cakupannya berbeda. Tinjau kebutuhan koneksi Anda sebelum memigrasikan nilai ini.

upstream-keepalive-timeoutTimeout untuk koneksi keepalive idle ke server upstream.connectionPool.http.idleTimeout dalam DestinationRule.

Contoh: konfigurasi pooling koneksi dalam DestinationRule

apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: my-service-pool
spec:
  host: my-service.prod.svc.cluster.local
  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 100
      http:
        maxRequestsPerConnection: 1000
        idleTimeout: 60s

Parameter timeout

Parameter NGINXPerilaku NGINXPadanan ASM
proxy-connect-timeoutTimeout untuk membuat koneksi ke server upstream. Tidak boleh melebihi 75 detik.connectionPool.http.connectTimeout dalam DestinationRule.

Contoh: atur connect timeout

apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: my-service-timeout
spec:
  host: my-service.prod.svc.cluster.local
  trafficPolicy:
    connectionPool:
      http:
        connectTimeout: 30s

Parameter penanganan header

Parameter ini mengontrol cara header diproses, dihasilkan, dan divalidasi.

Parameter NGINXPerilaku NGINXPadanan ASM
allow-backend-server-headerMengizinkan backend mengembalikan header Server miliknya sendiri alih-alih string default NGINX.Diaktifkan secara default pada gerbang ASM. Default: true.
enable-underscores-in-headersMengizinkan garis bawah dalam nama header HTTP.Dipetakan ke parameter Envoy headers_with_underscores_action. Default: true.
ignore-invalid-headersMengabaikan header dengan nama tidak valid. Nama yang valid terdiri dari huruf, angka, dan tanda hubung. Dukungan garis bawah bergantung pada pengaturan underscores_in_headers.Envoy menggunakan Header Validator. Tanpa konfigurasi eksplisit, Envoy menerapkan validasi default dan mengembalikan respons 400 Bad Request untuk header yang tidak valid. image.png
generate-request-idMenghasilkan nilai acak untuk header X-Request-ID jika header tersebut tidak ada dalam permintaan masuk.Dipetakan ke parameter Envoy generate_request_id. Default: true. Ubah melalui plugin ASM.
server-tokensMengontrol apakah NGINX mengirimkan versinya dalam header respons Server dan pada halaman kesalahan. Default: dinonaktifkan.Gerbang ASM menetapkan header Server ke header Envoy secara default. Halaman kesalahan tidak menampilkan informasi versi.

Header forwarding dan proxy

Tiga parameter NGINX mengontrol perilaku header X-Forwarded-For. Di Istio, ketiganya dipetakan ke konfigurasi topologi jaringan gerbang.

Parameter NGINXPerilaku NGINXPadanan ASM
compute-full-forwarded-forMenambahkan alamat remote ke header X-Forwarded-For alih-alih menggantinya.Dikontrol oleh parameter Envoy use_remote_address. Default: true. Lihat Mengonfigurasi topologi jaringan gerbang.
forwarded-for-headerMenentukan header mana yang mengidentifikasi alamat IP asal klien.Gerbang ASM menggunakan X-Forwarded-For dan tidak mendukung nama header kustom untuk tujuan ini.
use-forwarded-headersJika bernilai true, NGINX meneruskan header X-Forwarded-* yang masuk. Ini umum terjadi ketika NGINX berada di belakang proxy Layer 7 lain. Jika bernilai false, NGINX mengabaikan nilai yang masuk dan menghasilkan nilai baru.Lihat Mengonfigurasi topologi jaringan gerbang.

Parameter TLS dan pengalihan

Parameter NGINXPerilaku NGINXPadanan ASM
ssl-redirectSecara global mengalihkan HTTP ke HTTPS ketika server memiliki sertifikat TLS.Konfigurasikan tls.httpsRedirect dalam resource Gateway.

Contoh: alihkan HTTP ke HTTPS

apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
  name: my-gateway
spec:
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "example.com"
    tls:
      httpsRedirect: true  # Mengembalikan respons 301 untuk permintaan HTTP

Pencatatan log dan observabilitas

Parameter NGINXPerilaku NGINXPadanan ASM
log-format-upstreamMenyesuaikan format log upstream.Konfigurasikan format log pada halaman Observability Settings di Konsol ASM. Lihat Mengonfigurasi pengaturan observabilitas.

Batas ukuran badan permintaan

Parameter NGINXPerilaku NGINXPadanan ASM
proxy-body-sizeUkuran maksimum badan permintaan klien yang diizinkan. Mengembalikan respons 413 Request Entity Too Large jika dilampaui.ASM tidak memiliki pengaturan setara. Gunakan chunked transfer encoding untuk muatan besar.

Parameter worker dan proses

Parameter NGINXPerilaku NGINXPadanan ASM
reuse-portMembuat socket pendengar terpisah per proses worker dengan menggunakan SO_REUSEPORT, yang memungkinkan kernel mendistribusikan koneksi ke berbagai worker. Default: true.Diaktifkan secara default pada gerbang ASM. Default: true.
worker-cpu-affinityMengikat proses worker ke set CPU tertentu.Tidak berlaku di lingkungan kontainer. Gunakan pengaturan default.

Ekstensibilitas konfigurasi

Parameter NGINXPerilaku NGINXPadanan ASM
allow-snippet-annotationsMengizinkan cuplikan konfigurasi NGINX kustom dalam anotasi Ingress.ASM tidak mendukung cuplikan berbasis anotasi. Edit langsung YAML IstioGateway untuk menyesuaikan perilaku gerbang.

Referensi