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 Istio | Yang Dikendalikan | Padanan khas di NGINX |
|---|---|---|
| Gateway | Port listener, terminasi TLS, pengalihan HTTPS | ssl-redirect |
| VirtualService | Aturan routing, penulisan ulang path, timeout per rute | Anotasi tingkat rute |
| DestinationRule | Pooling koneksi, keepalive, pemutusan sirkuit | keep-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 NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
keep-alive-requests | Jumlah maksimum permintaan per koneksi keepalive. Koneksi akan ditutup setelah mencapai batas ini. | connectionPool.maxRequestsPerConnection dalam DestinationRule. |
max-worker-connections | Jumlah maksimum koneksi simultan per proses worker NGINX. | connectionPool.tcp.maxConnections dalam DestinationRule. Menetapkan jumlah maksimum koneksi ke satu host tujuan. |
upstream-keepalive-connections | Jumlah 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-timeout | Timeout 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: 60sParameter timeout
| Parameter NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
proxy-connect-timeout | Timeout 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: 30sParameter penanganan header
Parameter ini mengontrol cara header diproses, dihasilkan, dan divalidasi.
| Parameter NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
allow-backend-server-header | Mengizinkan backend mengembalikan header Server miliknya sendiri alih-alih string default NGINX. | Diaktifkan secara default pada gerbang ASM. Default: true. |
enable-underscores-in-headers | Mengizinkan garis bawah dalam nama header HTTP. | Dipetakan ke parameter Envoy headers_with_underscores_action. Default: true. |
ignore-invalid-headers | Mengabaikan 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. ![]() |
generate-request-id | Menghasilkan 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-tokens | Mengontrol 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 NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
compute-full-forwarded-for | Menambahkan 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-header | Menentukan 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-headers | Jika 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 NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
ssl-redirect | Secara 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 HTTPPencatatan log dan observabilitas
| Parameter NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
log-format-upstream | Menyesuaikan format log upstream. | Konfigurasikan format log pada halaman Observability Settings di Konsol ASM. Lihat Mengonfigurasi pengaturan observabilitas. |
Batas ukuran badan permintaan
| Parameter NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
proxy-body-size | Ukuran 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 NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
reuse-port | Membuat 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-affinity | Mengikat proses worker ke set CPU tertentu. | Tidak berlaku di lingkungan kontainer. Gunakan pengaturan default. |
Ekstensibilitas konfigurasi
| Parameter NGINX | Perilaku NGINX | Padanan ASM |
|---|---|---|
allow-snippet-annotations | Mengizinkan cuplikan konfigurasi NGINX kustom dalam anotasi Ingress. | ASM tidak mendukung cuplikan berbasis anotasi. Edit langsung YAML IstioGateway untuk menyesuaikan perilaku gerbang. |
Referensi
Referensi ConfigMap Ingress NGINX – Daftar lengkap parameter ConfigMap NGINX Ingress Controller
Referensi API Istio DestinationRule – Pengaturan pooling koneksi, load balancing, dan pemutus sirkuit
Referensi API Istio Gateway – Listener port, terminasi TLS, dan pengalihan HTTPS
Mengonfigurasi topologi jaringan gerbang – Pemrosesan
X-Forwarded-Fordan konfigurasi proxy tepercayaHeader Validator Envoy – Aturan validasi header
Mengonfigurasi pengaturan observabilitas – Penyesuaian log akses di Konsol ASM
