Topik ini menjawab pertanyaan umum (FAQ) mengenai penggunaan gateway cloud-native MSE.
Apakah gateway cloud-native MSE mendukung IPv6?
Ya. Ingress lalu lintas gateway menggunakan instans Classic Load Balancer (CLB) atau Network Load Balancer (NLB). Di halaman Overview, Anda dapat mengklik tab Gateway Ingress dan mengaitkan instans CLB atau NLB yang telah diaktifkan IPv6-nya.
Apakah gateway cloud-native mendukung header permintaan x-real-ip?
Tidak secara default. Header x-real-ip khusus untuk Nginx. Untuk menggunakannya, Anda harus mengaktifkan plugin http-real-ip pada gateway. Plugin ini mengekstraksi alamat IP klien sesuai konfigurasinya dan menuliskannya ke dalam header permintaan x-real-ip.
Apakah gateway cloud-native mendukung header permintaan x-forwarded-for?
Ya. Jika permintaan asli berisi header x-forwarded-for, gateway akan menambahkan alamat IP hop sebelumnya ke akhir header tersebut. Jika permintaan asli tidak berisi header x-forwarded-for, gateway akan menambahkan header tersebut dan memasukkan alamat IP hop sebelumnya.
Tomcat bawaan Spring Boot secara default menghapus alamat terakhir dalam header x-forwarded-for. Untuk mencegah penghapusan ini, tambahkan konfigurasi server.forward-headers-strategy=none ke Spring Boot.
Apa yang harus saya lakukan jika pesan "upstream connect error or disconnect/reset header" muncul saat gateway cloud-native meneruskan permintaan?
Masalah ini terjadi karena grup keamanan layanan backend tidak mengizinkan gateway mengakses port layanan tersebut. Di halaman Overview instans gateway, klik tab Security Group Authorization, lalu klik Authorize Security Group untuk menambahkan aturan grup keamanan. Gateway meneruskan permintaan langsung ke alamat IP pod kluster ACK, sehingga Anda harus membuka port yang digunakan oleh pod dalam otorisasi grup keamanan.
Bagaimana cara menggunakan header untuk mencocokkan nama domain dalam gateway cloud-native?
Saat membuat entri rute, Anda dapat menambahkan aturan pencocokan header permintaan. Untuk nama header, masukkan :authority. Untuk nilai header, masukkan nama domain spesifik.
Apa yang harus saya lakukan jika tidak dapat melihat log plugin gateway cloud-native?
Masalah ini dapat terjadi karena alasan berikut:
Log tidak dicetak karena tingkat log saat ini diatur ke Trace atau Debug. Secara default, plugin hanya mencetak log pada tingkat Info atau lebih tinggi.
Plugin tidak dimulai seperti yang diharapkan karena masalah kompilasi. Dalam kasus ini, hapus pernyataan pencarian log default untuk melihat log kesalahan yang dihasilkan selama startup plugin. Kompilasi kode plugin sesuai petunjuk dalam dokumentasi pengembangan plugin, lalu debug plugin secara lokal menggunakan mode docker compose untuk memvalidasi plugin. Setelah divalidasi, Anda dapat mengunggah plugin ke gateway cloud-native.
Apa yang harus saya lakukan jika muncul kesalahan karena badan permintaan terlalu besar?
Masalah ini terjadi karena buffer koneksi gateway terlalu kecil. Anda dapat menambah ukuran buffer:
Jika protokolnya HTTP/1.x, sesuaikan parameter
DownstreamConnectionBufferLimitsdi konsol.Jika protokolnya HTTP/2, sesuaikan parameter
DownstreamConnectionBufferLimitsdanInitialStreamWindowSizedi konsol.
Apa saja batasan saat menambahkan sumber layanan ke gateway cloud-native?
Satu instans gateway dapat dikaitkan dengan maksimal tiga layanan kontainer ACK.
Satu instans gateway dapat dikaitkan dengan maksimal tiga instans Nacos.
Mengapa saya tidak dapat memilih instans Nacos atau ACK yang sudah ada saat menambahkan sumber layanan ke gateway cloud-native saya?
Gateway cloud-native hanya dapat menambahkan instans Nacos atau ACK yang berada dalam VPC yang sama. Sumber layanan tidak dapat ditambahkan lintas VPC yang berbeda.
Apakah gateway cloud-native mendukung sertifikat HTTPS kustom?
Gateway cloud-native tidak menyimpan sertifikat, melainkan mengambilnya dari Layanan Sertifikat SSL Alibaba Cloud. Anda dapat mengunggah sertifikat Anda sendiri di konsol SSL Certificate Service, lalu mengonfigurasikannya untuk nama domain gateway.
Apakah perubahan parameter di konsol gateway cloud-native memengaruhi lalu lintas yang sedang berjalan?
Setelah mengubah parameter
XffTrustedNum, Anda harus me-restart gateway agar perubahan berlaku.Setelah mengubah parameter
UpstreamIdleTimeout, koneksi upstream akan ditutup lalu dibuat ulang.Setelah mengubah parameter
DownstreamIdleTime, koneksi downstream akan ditutup lalu dibuat ulang.
Apa yang harus saya lakukan jika status pemeriksaan kesehatan port 443 pada instans CLB tidak normal?
Status pemeriksaan kesehatan untuk port 443 tidak normal karena gateway tidak mendengarkan port ini jika tidak ada nama domain HTTPS yang dikonfigurasi. Untuk mengatasi hal ini, Anda harus mengonfigurasi nama domain HTTPS pada gateway. Untuk informasi lebih lanjut, lihat Buat nama domain. Jika Anda menggunakan Ingress, lihat K8s Ingress.
Apa yang harus saya lakukan jika status pemeriksaan kesehatan suatu layanan tidak normal setelah layanan tersebut dibuat di gateway cloud-native?
Agar gateway dapat meneruskan permintaan ke layanan backend, gateway harus dapat terhubung ke layanan backend melalui jaringan. Jika status pemeriksaan kesehatan suatu layanan tidak normal, penyebabnya biasanya salah satu dari berikut:
Untuk layanan privat di VPC, periksa apakah grup keamanan layanan backend dikonfigurasi untuk mengizinkan gateway mengakses port yang sesuai. Untuk informasi lebih lanjut, lihat Atur aturan grup keamanan.
Untuk layanan di Internet, periksa apakah VPC dapat mengakses Internet. Anda dapat menggunakan fitur SNAT dari Gateway NAT Internet untuk mengakses Internet. Untuk informasi lebih lanjut, lihat Gunakan fitur SNAT Gateway NAT Internet untuk mengakses Internet.
Untuk pemeriksaan kesehatan HTTP, pastikan path permintaan dan nama domain permintaan diatur dengan benar.
Untuk pemeriksaan kesehatan HTTP, jika antarmuka pemeriksaan kesehatan layanan backend harus diakses melalui HTTPS, atur mode ke One-way TLS di Policy Configuration layanan.
Untuk pemeriksaan kesehatan HTTP, jika masalah tetap berlanjut setelah melakukan langkah-langkah di atas, interval pemeriksaan kesehatan mungkin sama dengan waktu koneksi tetap hidup layanan backend. Anda dapat mencoba menambah interval pemeriksaan kesehatan.
Bagaimana cara mengidentifikasi penyebab kesalahan permintaan?
Periksa apakah header respons berisi header
x-envoy-upstream-service-time. Jika respons berisi headerx-envoy-upstream-service-time, berarti gateway telah meneruskan permintaan ke layanan backend untuk diproses. Dalam kasus ini, kesalahan permintaan selanjutnya kemungkinan disebabkan oleh logika layanan backend.Periksa apakah bidang
upstream_service_timedalam log akses gateway kosong. Jika bidangupstream_service_timedalam log akses tidak kosong, berarti gateway telah meneruskan permintaan ke layanan backend untuk diproses. Dalam kasus ini, kesalahan permintaan selanjutnya kemungkinan disebabkan oleh logika layanan backend.
Apa yang harus saya lakukan jika sertifikat HTTPS tidak berlaku setelah diperbarui di gateway cloud-native?
Masalah ini biasanya terjadi karena sertifikat HTTPS juga dikonfigurasi pada node upstream, seperti instans CLB, DCDN, WAF, atau Anti-DDoS Pro dan Anti-DDoS Premium. Periksa apakah sertifikat HTTPS pada node upstream juga telah diperbarui. Praktik terbaik adalah mengonfigurasi sertifikat HTTPS hanya di satu tempat. Jika DCDN atau WAF terhubung di upstream gateway, Anda dapat mengonfigurasi HTTPS hanya di DCDN atau WAF dan menggunakan HTTP untuk gateway backend.
Apa yang harus saya lakukan jika perubahan konfigurasi parameter di gateway cloud-native tidak berlaku?
Masalah ini biasanya terjadi karena menggunakan MSE Ingress. MseIngressConfig berisi item konfigurasi terkait. MSE Ingress secara otomatis menyinkronkan item konfigurasi dalam MseIngressConfig ke konsol gateway MSE. Jika Anda mengubah item konfigurasi di konsol, perubahan tersebut mungkin ditimpa oleh informasi yang disinkronkan dari MSE Ingress. Kami menyarankan Anda hanya mengubah item konfigurasi di MSE Ingress.
Bagaimana prioritas routing gateway cloud-native diurutkan?
Urutan konfigurasi entri rute di halaman Route Settings instans gateway menentukan prioritas pencocokan entri rute. Daftar diurutkan berdasarkan prioritas menurun. Prioritas pencocokan bergantung pada nama domain dan aturan routing. Untuk nama domain, nama domain yang cocok persis memiliki prioritas lebih tinggi daripada nama domain wildcard. Misalnya, test.example.com memiliki prioritas lebih tinggi daripada *.example.com. Untuk aturan routing dengan nama domain yang sama, prioritas path adalah pencocokan eksak > pencocokan awalan > pencocokan ekspresi reguler. Untuk aturan routing dengan nama domain dan path yang sama, prioritasnya adalah lebih banyak kondisi pencocokan > lebih sedikit kondisi pencocokan. Kondisi pencocokan mencakup parameter Header dan Query.
Mengapa permintaan HTTPS gagal ketika gateway cloud-native terhubung ke DCDN?
Masalah ini biasanya terjadi karena DCDN tidak menyertakan SNI saat mengirim permintaan pengambilan asal ke gateway. Anda dapat mengatur origin SNI dalam konfigurasi pengambilan asal DCDN.
Mengapa permintaan HTTPS gagal ketika gateway cloud-native terhubung ke WAF?
Masalah ini biasanya terjadi karena WAF tidak menyertakan SNI saat mengirim permintaan pengambilan asal ke gateway. Jika Anda menggunakan mode rekaman CNAME untuk menambahkan nama domain ke WAF, Anda harus mengubah pengaturan nama domain. Di Forwarding Settings, pilih Enable Origin SNI.
Apakah gateway cloud-native mendukung WebSocket?
Ya. Dukungan untuk protokol WebSocket diaktifkan secara default.
Apakah gateway cloud-native mendukung gRPC?
Ya. gRPC menggunakan protokol HTTP/2 untuk transmisi. Di halaman Parameter Settings gateway, pastikan bahwa EnableHttp2 = true.
Apakah gateway cloud-native mendukung dekompresi GZIP?
Ya. Di halaman Parameter Settings gateway, pastikan bahwa EnableGzip = true. Algoritma kompresi Gzip dan Brotli didukung. Anda dapat mengonfigurasi algoritma menggunakan parameter ZipAlgorithm. Nilai default-nya adalah Gzip.
Apakah gateway cloud-native mendukung mempertahankan huruf besar/kecil pada header permintaan dan respons?
Ya. Di halaman Parameter Settings gateway, pastikan bahwa PreserveHeaderFormat = true. Parameter ini hanya berlaku untuk HTTP/1.0 atau HTTP/1.1. Menurut spesifikasi, protokol HTTP/2 mengharuskan semua header permintaan dan respons menggunakan huruf kecil.
Apakah gateway cloud-native mendukung HTTP/3?
Ya. Di halaman Parameter Settings gateway, pastikan bahwa EnableHttp3 = true.
Apakah gateway cloud-native mendukung port pendengar kustom?
Ya. Gateway cloud-native mendukung HTTP (port 80) dan HTTPS (port 443). Di konsol CLB, Anda dapat menambahkan port pendengar, seperti port TCP 8080, dan menetapkan port 80 ke kelompok vServer yang sama untuk memproses permintaan HTTP.
Mengapa semua header permintaan dan respons menjadi huruf kecil setelah permintaan melewati gateway?
Secara default, gateway mengonversi semua header permintaan dan respons menjadi huruf kecil. Untuk mempertahankan huruf besar/kecil, di halaman Parameter Settings gateway, atur PreserveHeaderFormat = true.
Mengapa akses gagal setelah saya membuat layanan nama domain DNS di gateway cloud-native?
Jika nama domain DNS yang dikonfigurasi adalah nama domain Internet, Anda harus mengonfigurasi SNAT di konsol Gateway NAT agar gateway dapat mengakses Internet. Secara default, gateway tidak dapat mengakses Internet.
Apa yang harus saya lakukan jika terjadi kesalahan 400 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Protokol yang dikirim oleh klien tidak valid. Anda dapat melihat log akses gateway. Log tersebut berisi
response_flags = DPE.Layanan backend mengembalikan kesalahan 400. Anda dapat memastikannya dengan melihat log akses gateway. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 400. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 401 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Gateway mengembalikan pesan yang menunjukkan bahwa tidak ada kredensial akses yang disediakan. Periksa apakah autentikasi atau plugin Wasm diaktifkan.
Layanan backend mengembalikan kesalahan 401. Anda dapat memastikannya dengan melihat log akses gateway. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 401. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 403 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Gateway mengembalikan pesan yang menunjukkan bahwa Anda tidak memiliki izin yang diperlukan untuk mengakses sumber daya tersebut. Periksa apakah daftar hitam dan daftar putih berbasis alamat IP, autentikasi, atau plugin Wasm diaktifkan.
Layanan backend mengembalikan kesalahan 403. Anda dapat memastikannya dengan melihat log akses gateway. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 403. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 404 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Gateway tidak memiliki aturan routing yang sesuai. Anda dapat melihat log akses gateway. Jika log berisi
response_flags = NR, berarti tidak ada aturan routing yang dikonfigurasi di gateway.Layanan backend mengembalikan kesalahan 404. Anda dapat memastikannya dengan melihat log akses gateway. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 404. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 405 pada permintaan?
Proteksi WAF diaktifkan, dan permintaan tersebut memicu aturan proteksi WAF. Kode status ini dikembalikan oleh WAF.
Apa yang harus saya lakukan jika terjadi kesalahan 413 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Ukuran permintaan melebihi ukuran buffer koneksi gateway. Di halaman Parameter Settings, tingkatkan nilai parameter
DownstreamConnectionBufferLimits.Layanan backend mengembalikan kesalahan 413. Anda dapat memastikannya dengan melihat log akses gateway. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 413. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 429 pada permintaan?
Aturan pembatasan laju di gateway dipicu. Anda dapat melihat log akses gateway. Jika log berisi response_flags = RL, periksa aturan pembatasan laju gateway.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 502 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Layanan backend mengembalikan kesalahan protokol permintaan. Anda dapat melihat log akses gateway. Jika log berisi
response_flags = UPE, penyebab paling umum adalah header yang dikembalikan oleh layanan backend berisi duplikasi bidangTransfer-Encoding. Dalam kasus ini, periksa layanan backend.Layanan backend mengembalikan kesalahan 502. Anda dapat memastikannya dengan melihat log akses gateway. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 502. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Apa yang harus saya lakukan jika terjadi kesalahan 503 pada permintaan?
Kesalahan ini biasanya terjadi karena salah satu alasan berikut:
Layanan tujuan dalam aturan routing yang dikonfigurasi untuk gateway tidak memiliki alamat IP yang sehat. Anda dapat melihat log akses gateway. Log tersebut berisi
response_flags = UH.Koneksi ditutup oleh layanan backend saat gateway meneruskan permintaan. Anda dapat melihat log akses gateway. Jika log berisi
response_flags = UC,idle timeoutlayanan backend biasanya lebih pendek daripadaUpstreamIdleTimeoutgateway. Di halaman Parameter Settings gateway, kurangi nilaiUpstreamIdleTimeout.Gateway tidak dapat terhubung ke alamat IP layanan backend. Anda dapat melihat log akses gateway. Jika log berisi
response_flags = UFatauresponse_flags = URX, grup keamanan layanan backend biasanya mencegah akses dari gateway. Periksa apakah grup keamanan layanan backend dikonfigurasi untuk mengizinkan gateway mengakses port yang sesuai. Untuk informasi lebih lanjut, lihat Atur aturan grup keamanan.Gateway tidak memiliki layanan backend yang sesuai. Anda dapat melihat log akses gateway. Jika log berisi
response_flags = NC, penyebabnya biasanya salah satu dari berikut:Layanan yang sesuai tidak lagi ada.
Jika layanan backend memiliki beberapa port, Anda harus memilih port tetap, bukan port dinamis, saat memilih layanan tujuan untuk aturan routing.
Layanan backend memilih port tetap, tetapi port layanan tersebut telah berubah.
Layanan backend mengembalikan kesalahan 503. Jika bidang
response_flagskosong dan bidangupstream_hostmemiliki nilai, berarti layanan backend mengembalikan kesalahan 503. Nilaiupstream_hostadalah alamat IP backend tempat gateway meneruskan permintaan.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.
Mengapa nilai bidang response_code dalam log adalah 0?
Nilai 0 untuk bidang response_code dalam log menunjukkan bahwa klien tidak menerima kode respons.
Kesalahan ini biasanya terjadi karena salah satu dari dua alasan berikut:
Klien menutup koneksi secara prematur. Misalnya, klien mungkin menutup koneksi secara prematur jika sinyal jaringan seluler lemah atau waktu respons backend terlalu lama. Di log, Anda dapat memastikannya dengan memeriksa apakah nilai bidang response_flags adalah "DC".
Permintaan HTTPS tidak menyertakan SNI, dan tidak ada sertifikat HTTPS yang dikonfigurasi untuk nama domain wildcard (*). SNI adalah ekstensi TLS yang menyertakan informasi nama domain. Di log, Anda dapat memastikannya dengan memeriksa apakah bidang requested_server_name kosong.
Kami menyarankan Anda menggunakan fitur AI Diagnostics untuk analisis awal.