Lewati ke konten

Referensi Konfigurasi

Di akhir panduan ini, Anda akan memiliki file gateway.config.json tervalidasi yang disesuaikan untuk lingkungan produksi atau lokal Anda.

Gateway membaca pengaturannya dari file JSON deklaratif (gateway.config.json). Setiap field string mendukung interpolasi variabel lingkungan dengan nilai cadangan (fallback).

Bagian Tingkat AtasTujuanWajib
serverListener HTTP, port, batas waktu, dan batas ukuran body.Ya
routesPola URL masuk, metode HTTP, dan prioritas.Ya
upstreamsLayanan tujuan, pool koneksi, dan health check.Ya
performanceJumlah worker dan alokasi pool memori.Tidak

Buat file gateway.config.json di direktori utama proyek Anda:

{
"version": "1.0.0",
"environment": "production",
"server": {
"port": 3000,
"host": "0.0.0.0",
"keepAlive": true,
"keepAliveTimeout": 65000,
"requestTimeout": 30000,
"maxHeaderSize": 16384,
"maxBodySize": 10485760
},
"routes": [
{
"method": "GET",
"path": "/api/:id",
"priority": 0
}
],
"upstreams": [
{
"id": "backend-service",
"protocol": "http",
"host": "localhost",
"port": 8080,
"basePath": "",
"poolSize": 10,
"timeout": 30000,
"healthCheck": {
"enabled": true,
"interval": 30000,
"timeout": 5000,
"path": "/health",
"expectedStatus": 200
}
}
],
"performance": {
"workerCount": 0,
"contextPoolSize": 1000,
"bufferPoolSize": 1000,
"responsePoolSize": 1000,
"enablePooling": true
}
}

Sesuaikan opsi utama berdasarkan arsitektur jaringan Anda:

KolomTipeNilai BawaanDeskripsi
server.portnumber3000Port untuk menerima permintaan HTTP.
server.keepAlivebooleantrueMenggunakan ulang koneksi TCP antara klien dan gateway.
server.maxBodySizenumber10485760Ukuran payload permintaan maksimum dalam byte (10 MB).
routes[].pathstring—Pola route, mendukung token :param.
upstreams[].poolSizenumber10Jumlah koneksi pool soket maksimum per upstream.

Langkah 3: Interpolasi Variabel Lingkungan

Section titled “Langkah 3: Interpolasi Variabel Lingkungan”

Gantikan string statis dengan variabel lingkungan bila diperlukan. Gunakan format ${VAR_NAME} atau sintaks fallback ${VAR_NAME:-defaultValue}:

{
"server": {
"host": "${GATEWAY_HOST:-0.0.0.0}",
"port": "${GATEWAY_PORT:-3000}"
},
"upstreams": [
{
"id": "backend-service",
"host": "${BACKEND_HOST:-localhost}",
"port": "${BACKEND_PORT:-8080}"
}
]
}

Gateway melakukan substitusi variabel sebelum melakukan validasi skema JSON.

Jalankan perintah validasi konfigurasi dari direktori proyek Anda:

Terminal window
npx tsgate validate

Hasil yang diharapkan:

OK: configuration is valid (1 routes, 1 upstreams)

Jika terjadi kesalahan, validator akan menunjukkan lokasi field dan tipe yang diharapkan:

Terminal window
GATEWAY_PORT=abc npx tsgate validate

Hasil yang diharapkan:

Error: server.port must be an integer, received NaN

Untuk mengonfigurasi autentikasi, rate limiting, dan caching respons untuk route Anda, lanjutkan ke Panduan Penggunaan.