Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat Dokumentasi Apigee Edge.
Topik ini menjelaskan properti transpor yang dapat ditetapkan di TargetEndpoint
dan ProxyEndpoint
untuk mengontrol perilaku pesan dan koneksi. Untuk liputan lengkap dari
TargetEndpoint
dan ProxyEndpoint
opsi konfigurasi, lihat referensi konfigurasi proxy API.
Properti Transpor TargetEndpoint
Elemen HTTPTargetConnection
dalam konfigurasi TargetEndpoint
menentukan kumpulan HTTP
properti transpor. Anda dapat menggunakan properti ini untuk menetapkan konfigurasi tingkat transportasi.
Properti ditetapkan pada elemen TargetEndpoint
HTTPTargetConnection
seperti yang ditunjukkan dalam contoh konfigurasi ini:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property> <Property name="retain.queryparams">apikey</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Properti Transport TargetEndpoint Spesifikasi
Nama Properti | Nilai Default | Deskripsi |
---|---|---|
allow.post.without.content.length |
salah | Memungkinkan Anda mengirim permintaan POST tanpa isi di dalamnya. |
allow.put.without.content.length |
salah | Memungkinkan Anda mengirim permintaan PUT tanpa konten di isi. |
allow.tls.session.resumption |
benar | Jika klien true (default) menggunakan kembali sesi TLS saat membuat koneksi baru ke target.
Setel ke false jika Anda tidak ingin sesi TLS digunakan ulang. Penggunaan ulang sesi secara umum
berarti waktu koneksi menjadi lebih singkat, tetapi beberapa target mungkin tidak mendukung penggunaan ulang sesi atau memiliki
kesulitan menggunakannya. |
keepalive.timeout.millis |
60000 | Waktu tunggu tidak ada aktivitas koneksi untuk koneksi target di kumpulan koneksi. Jika jika koneksi dalam kumpulan tidak ada aktivitas di luar batas yang ditentukan, berarti koneksi tutup. |
connect.timeout.millis |
3000 |
Waktu tunggu koneksi target habis. Apigee menampilkan kode status |
ignore.allow.header.for.405 |
benar |
Memungkinkan Anda meneruskan kode status 405 kembali ke klien. Dengan mengaktifkan flag Apigee akan menampilkan 405, bukan kode status 502. |
io.timeout.millis |
55000 |
Jika tidak ada data yang akan dibaca untuk jumlah milidetik yang ditentukan, atau jika soket tidak siap menulis data untuk jumlah milidetik tertentu, maka transaksinya dianggap sebagai waktu tunggu.
|
supports.http11 |
benar | Jika ini adalah true dan klien mengirimkan permintaan 1.1 , target juga akan dikirim
1.1
, jika tidak, permintaan 1.0 akan dikirim ke target. |
use.proxy |
benar | Properti ini hanya berlaku untuk Apigee Hybrid.
Jika file penggantian hybrid Apigee berisi konfigurasi
Jika ditetapkan ke |
use.proxy.tunneling |
benar |
Properti ini hanya berlaku untuk Apigee Hybrid. Jika ini disetel ke true, dan konfigurasi proxy akan ditentukan File penggantian Apigee Hybrid seperti yang dijelaskan dalam Mengonfigurasi forward proxy untuk proxy API, kemudian koneksi target diatur untuk menggunakan terowongan yang ditentukan. Jika target menggunakan TLS/SSL, properti ini akan diabaikan, dan pesan selalu dikirim menggunakan tunnel. |
request.streaming.enabled |
salah |
Secara default ( |
response.streaming.enabled |
salah |
Secara {i>default<i} (salah), {i>payload<i} respons HTTP
dibaca ke dalam {i>buffer<i}, dan kebijakan yang
dapat beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus di mana payload lebih besar dari
ukuran buffer (10 MB di Apigee), Anda dapat menyetel
ke true. Jika true (benar), payload respons HTTP tidak akan dibaca ke buffer; mereka
di-streaming apa adanya ke alur respons |
success.codes |
T/A |
Secara default, Apigee memperlakukan kode HTTP Menyetel properti ini akan menimpa nilai default. Oleh karena itu, jika Anda ingin menambahkan
Kode HTTP
Jika Anda hanya ingin kode HTTP
Dengan menetapkan kode HTTP |
compression.algorithm |
T/A |
Secara default, Apigee menerima kumpulan jenis kompresi (gzip, deflate, atau tidak ada) untuk pesan
diterima. Jika permintaan diterima dari klien menggunakan, misalnya, gzip
baru, kemudian Apigee meneruskan permintaan ke target menggunakan kompresi gzip. Jika
respons yang diterima dari target menggunakan deflate, kemudian Apigee meneruskan respons ke
klien menggunakan {i>deflate<i}. Nilai yang didukung adalah:
Lihat juga: Apakah Apigee mendukung kompresi/de-kompresi dengan kompresi GZIP/deflate? |
request.retain.headers. |
benar | Secara default, Apigee selalu mempertahankan semua header HTTP pada pesan keluar. Setelah ditetapkan
ke true , semua header HTTP yang ada di permintaan masuk akan ditetapkan di
permintaan keluar. |
request.retain.headers |
T/A | Menentukan header HTTP spesifik dari permintaan yang harus ditetapkan saat pengalihan
permintaan ke layanan target. Misalnya, untuk passthrough User-Agent
, setel nilai request.retain.headers ke User-Agent .
Beberapa header HTTP ditetapkan sebagai daftar yang dipisahkan koma, misalnya,
User-Agent,Referer,Accept-Language . Properti ini mengganti
request.retain.headers.enabled . Jika request.retain.headers.enabled
disetel ke false , header apa pun yang ditentukan dalam
Properti request.retain.headers masih ditetapkan pada pesan keluar. |
response.retain.headers. |
benar | Secara default, Apigee selalu mempertahankan semua header HTTP pada pesan keluar. Setelah ditetapkan
ke true , semua header HTTP yang ada pada respons masuk dari target
ditetapkan pada respons keluar sebelum diteruskan ke
ProxyEndpoint . |
response.retain.headers |
T/A | Menentukan header HTTP spesifik dari respons yang harus ditetapkan saat panggilan keluar
sebelum diteruskan ke ProxyEndpoint . Misalnya, untuk
passthrough
Header Expires , tetapkan nilai response.retain.headers ke
Expires . Beberapa {i>header <i}HTTP ditetapkan sebagai daftar
yang dipisahkan koma, untuk
contoh, Expires,Set-Cookie . Properti ini mengganti
response.retain.headers.enabled . Jika
response.retain.headers.enabled ditetapkan ke false , header apa pun
yang ditentukan di properti response.retain.headers masih ditetapkan di
pesan keluar. |
retain.queryparams. |
benar | Secara default, Apigee selalu menyimpan semua parameter kueri pada permintaan keluar. Kapan
ditetapkan ke true , semua parameter kueri yang ada pada permintaan masuk akan ditetapkan di
permintaan keluar ke layanan target. |
retain.queryparams |
T/A | Menentukan parameter kueri tertentu yang akan ditetapkan pada permintaan keluar. Misalnya, untuk
sertakan parameter kueri apikey dari pesan permintaan, tetapkan
retain.queryparams untuk apikey . Beberapa parameter kueri
ditetapkan sebagai daftar yang dipisahkan koma, misalnya, apikey,environment . Ini
mengganti retain.queryparams.enabled . |
Properti Transport ProxyEndpoint
Elemen ProxyEndpoint
HTTPTargetConnection
menentukan kumpulan HTTP
properti transpor. Ini
dapat digunakan untuk menetapkan konfigurasi tingkat transport.
Properti ditetapkan pada elemen ProxyEndpoint
HTTPProxyConnection
seperti yang ditunjukkan dalam contoh konfigurasi ini:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <Property name="request.streaming.enabled">true</Property> </Properties> </HTTPProxyConnection> </ProxyEndpoint>
Header permintaan
Permintaan HTTP masuk menyertakan header HTTP yang dikirim oleh klien.
Header dengan nama yang cocok dengan pola X-Apigee-*
akan dihapus dari header masuk
jika klien mengirimkannya. Pola nama ini dicadangkan untuk Apigee.
Properti Transport ProxyEndpoint Spesifikasi
Nama Properti | Nilai Default | Deskripsi |
---|---|---|
X-Forwarded-For |
salah | Jika disetel ke benar (true), alamat IP host virtual akan ditambahkan ke permintaan keluar sebagai
header HTTP X-Forwarded-For . |
request.streaming. |
false |
Secara default (false ), payload permintaan HTTP dibaca ke dalam buffer, dan
kebijakan yang dapat
beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus saat payload lebih besar dari
(10 MB di Apigee), Anda dapat menyetel
ke true . Saat true , payload permintaan HTTP tidak dibaca
ke dalam {i>buffer<i} (penyangga); mereka
di-streaming apa adanya ke alur permintaan TargetEndpoint . Dalam hal ini, setiap kebijakan
yang beroperasi
pada payload dalam alur permintaan ProxyEndpoint diabaikan. Lihat juga
Permintaan streaming dan
respons tersebut. |
response.streaming. |
false |
Secara {i>default<i} (salah), {i>payload<i} respons HTTP
dibaca ke dalam {i>buffer<i}, dan kebijakan yang
dapat beroperasi pada pekerjaan {i>payload<i} seperti yang diharapkan. Dalam kasus di mana payload lebih besar dari
ukuran buffer (10 MB di Apigee), Anda dapat menyetel
ke true . Saat true , payload respons HTTP tidak dibaca
ke dalam {i>buffer<i} (penyangga); mereka
yang di-streaming apa adanya ke klien. Dalam hal ini, setiap kebijakan yang
beroperasi pada {i>payload<i} di dalam
ProxyEndpoint alur respons diabaikan. Lihat juga
Permintaan streaming dan
respons tersebut. |
compression.algorithm |
T/A |
Secara default, Apigee menerima set jenis kompresi (gzip, deflate, atau tidak ada) untuk pesan yang diterima. Sebagai
misalnya saat klien mengirimkan permintaan yang menggunakan kompresi gzip, Apigee
meneruskan permintaan ke target menggunakan kompresi gzip. Anda dapat mengonfigurasi kompresi
diterapkan secara eksplisit dengan menyetel properti ini pada
Lihat juga: Apakah Apigee mendukung kompresi/de-kompresi dengan kompresi GZIP/deflate? |
api.timeout |
T/A |
Mengonfigurasi waktu tunggu untuk setiap proxy API (dalam milidetik) Anda dapat mengonfigurasi proxy API, bahkan proxy dengan
streaming aktif,
ke waktu tunggu setelah waktu tertentu dengan status
Misalnya, untuk mengonfigurasi proxy agar waktu habis setelah 180.000 milidetik (tiga menit),
tambahkan properti berikut ke <Property name="api.timeout">180000</Property> Anda tidak dapat menetapkan properti ini dengan variabel. |
HTTPHeader.allowDuplicates |
T/A | Gunakan setelan ini untuk mengizinkan header duplikat (untuk header tertentu). <HTTPProxyConnection> <Properties> <Property name="HTTPHeader.allowDuplicates">Content-Type,Authorization</Property> </Properties> </HTTPProxyConnection> |
HTTPHeader.multiValued |
T/A | Gunakan setelan ini untuk mengizinkan header duplikat (untuk header tertentu). <HTTPProxyConnection> <Properties> <Property name="HTTPHeader.multiValued">Content-Type,Authorization</Property> </Properties> </HTTPProxyConnection> |
Menyetel io.timeout.millis dan api.timeout
Operasi io.timeout.millis
dan api.timeout
saling berhubungan. Pada setiap permintaan ke proxy API:
- Ingress (disebut juga Load Balancer Internal) mengirimkan nilai waktu tunggunya ke Pemroses Pesan. Nilai waktu tunggu ini ditetapkan secara default ke 300 detik dan tidak dapat dikonfigurasi.
- Pemroses Pesan kemudian menetapkan
api.timeout
:- Jika
api.timeout
tidak ditetapkan pada tingkat proxy, gunakan waktu tunggu yang disetel oleh Ingress. - Jika
api.timeout
disetel di tingkat proxy, tetapkan di Pemroses Pesan ke lebih sedikit waktu tunggu Ingress atau nilaiapi.timeout
.
- Jika
-
Nilai
api.timeout
menentukan jumlah waktu maksimum yang dimiliki proxy API dieksekusi dari permintaan API ke respons.Setelah setiap kebijakan di proxy API dieksekusi, atau sebelum Pemroses Pesan mengirimkan permintaan ke titik akhir target, Pemroses Pesan menghitung (
api.timeout
- waktu yang berlalu sejak awal permintaan).Jika nilainya kurang dari nol, jumlah waktu maksimum untuk menangani permintaan memiliki sudah tidak berlaku dan Pemroses Pesan menampilkan
504 Gateway Timeout
. -
Nilai
io.timeout.millis
menentukan jumlah waktu maksimum yang endpoint target harus merespons.Sebelum terhubung ke endpoint target, Pemroses Pesan menentukan nilai (
api.timeout
- waktu yang berlalu dari awal permintaan) danio.timeout.millis
. Kemudian,io.timeout.millis
akan ditetapkan ke nilai tersebut.Jika waktu tunggu terjadi saat menulis permintaan HTTP atau membaca Respons HTTP,
504 Gateway Timeout
akan ditampilkan.