Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Dalam komunikasi klien-server, server merespons kembali dengan kode status HTTP 405
Method Not Allowed
jika
Metode permintaan HTTP yang ditampilkan oleh klien diketahui server
tetapi tidak didukung oleh resource target. Demikian pula di Apigee Edge, server backend dapat
balas email ini dengan kode status HTTP 405 Method Not Allowed.
Apigee Edge mengharapkan server backend mengirim 405 Method Not Allowed
respons
dengan daftar metode yang diizinkan di header Allow
, sesuai spesifikasi
RFC 7231, bagian 6.5.5: Metode 405 Tidak Diizinkan.
Header Allow
harus dikirim dalam format berikut:
Allow: HTTP_METHODS
Misalnya, jika server backend Anda mengizinkan GET
, POST
, dan
Metode HEAD
, Anda harus memastikan bahwa header Allow
berisi metode tersebut
sebagai berikut:
Allow: GET, POST, HEAD
Jika server backend tidak mengirim header Allow
dengan kode status HTTP
405 Method Not Allowed,
, kemudian Apigee menampilkan kode status HTTP 502 Bad
Gateway
dengan kode error protocol.http.Response405WithoutAllowHeader
ke
aplikasi klien. Solusi yang direkomendasikan untuk mengatasi error ini adalah
untuk memperbaiki server backend agar mematuhi spesifikasi
RFC 7231, bagian 6.5.5: 405 Method Not Allowed atau gunakan penanganan fault untuk
merespons kembali dengan kode status HTTP 405 Method Not Allowed
termasuk
Allow
seperti yang dijelaskan dalam playbook pemecahan masalah
502 Bad Gateway - Response 405 without Allow header.
Namun, dalam beberapa kasus yang jarang terjadi, Anda mungkin tidak dapat memperbaiki backend atau mengubah Proxy API untuk segera mengatasi masalah ini.
Dalam kasus tersebut, Anda dapat menyetel header abaikan izinkan untuk properti 405
HTTP.ignore.allow_header.for.405
di
Tingkat Pemroses Pesan untuk sementara. Menetapkan properti ini ke true
akan mencegah Apigee
agar tidak menampilkan respons 502 Bad Gateway
ke aplikasi klien meskipun
server backend mengirimkan kode status HTTP 405 Method Not Allowed
tanpa
Header Allow
.
Setelah Anda dapat memperbaiki server backend agar mengirim kode status HTTP 405 Method
Not Allowed
dengan header Allow
, Anda dapat mengembalikan properti
HTTP.ignore.allow_header.for.405
ke nilai defaultnya false
.
Sebelum memulai
Sebelum menggunakan langkah-langkah dalam dokumen ini, pastikan Anda memahami topik berikut:
- Baca Playbook - 502 Bad Gateway - response 405 without Allow header.
- Jika Anda tidak terbiasa mengonfigurasi properti untuk Edge di Private Cloud, baca Cara mengonfigurasi Edge.
Mengonfigurasi header abaikan izinkan untuk properti 405 ke benar (true) pada Pemroses Pesan
Di Apigee Edge, properti HTTP.ignore.allow_header.for.405
disetel ke
false
, secara default. Hal ini memungkinkan Apigee Edge menampilkan 502 Bad
Gateway
dengan kode error protocol.http.Response405WithoutAllowHeader
ke
aplikasi klien jika server backend mengirimkan kode status HTTP 405 Method Not
Allowed
tanpa header Allow
. Jika Anda ingin mencegah Apigee Edge
mengirimkan 502 Bad Gateway
ke aplikasi klien, maka Anda perlu menyetel nilai
properti HTTP.ignore.allow_header.for.405
ke true
pada Pesan
Prosesor.
Bagian ini menjelaskan cara mengonfigurasi properti
HTTP.ignore.allow_header.for.405
ke true
pada
Pemroses Pesan, menggunakan token sesuai sintaks yang dijelaskan dalam
Cara mengonfigurasi Edge.
-
Di komputer Message Processor, buka file berikut di editor. Jika tidak sudah ada, maka buatlah.
/opt/apigee/customer/application/message-processor.properties
Misalnya, untuk membuka file menggunakan vi, masukkan kode berikut:
vi /opt/apigee/customer/application/message-processor.properties
- Tambahkan baris dalam format berikut ke file properti:
conf_http_HTTP.ignore.allow_header.for.405=true
- Simpan perubahan.
- Pastikan file properti dimiliki oleh pengguna
apigee
seperti yang ditunjukkan di bawah:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang Pemroses Pesan seperti yang ditunjukkan di bawah ini:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jika Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah-langkah di atas pada semua Pemroses Pesan Prosesor.
Memverifikasi header abaikan izinkan untuk properti 405 disetel ke benar (true) pada Pemroses Pesan
Bagian ini menjelaskan cara memverifikasi bahwa properti
HTTP.ignore.allow_header.for.405
telah berhasil diperbarui ke true
pada Message Processors.
Meskipun Anda menggunakan token conf_http_HTTP.ignore.allow_header.for.405
untuk mengupdate
nilai properti di Pemroses Pesan, Anda harus memverifikasi apakah properti sebenarnya
HTTP.ignore.allow_header.for.405
telah ditetapkan ke true
.
- Di mesin Pemroses Pesan, telusuri properti
HTTP.ignore.allow_header.for.405
dalam/opt/apigee/edge-message-processor/conf
dan periksa untuk melihat apakah telah ditetapkan ketrue
seperti yang ditunjukkan di bawah ini:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti berhasil diperbarui di Pemroses Pesan, perintah di atas
harus menampilkan nilai properti
HTTP.ignore.allow_header.for.405
sebagaitrue
dalam filehttp.properties
seperti yang ditunjukkan di bawah ini:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Jika Anda masih melihat nilai untuk properti
HTTP.ignore.allow_header.for.405
sebagaifalse
lalu verifikasi bahwa Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi header abaikan izinkan untuk properti 405 ke true dalam Mengirim Pesan ke Pemroses dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah lagi dengan benar. - Jika Anda tetap tidak dapat mengubah properti
HTTP.ignore.allow_header.for.405
, lalu hubungi Dukungan Apigee Edge.
Mengonfigurasi header abaikan izinkan untuk properti 405 ke salah pada Pemroses Pesan
Bagian ini menjelaskan cara mengonfigurasi properti
HTTP.ignore.allow_header.for.405
ke nilai defaultnya false
di Pemroses Pesan, menggunakan token sesuai sintaksis yang dijelaskan di
Cara mengonfigurasi Edge.
- Verifikasi apakah properti
HTTP.ignore.allow_header.for.405
diubah menjaditrue
. Anda dapat melakukannya dengan menelusuri properti ini di direktori/opt/apigee/edge-message-processor/conf
dan memeriksa menggunakan perintah berikut:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti ditetapkan ke
true
pada Pemroses Pesan, perintah di atas harus menunjukkan nilai propertiHTTP.ignore.allow_header.for.405
sebagaitrue
dalam filehttp.properties
seperti yang ditunjukkan di bawah ini:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Jika perintah di atas menunjukkan bahwa properti
HTTP.ignore.allow_header.for.405
ditetapkan kefalse
(nilai default), sehingga Anda tidak perlu melakukan apa pun. Yaitu, lewati langkah berikut. - Jika properti
HTTP.ignore.allow_header.for.405
ditetapkan ketrue
, lalu lakukan langkah-langkah berikut untuk kembali ke nilai defaultfalse
. Di komputer Message Processor, buka file berikut di editor:
/opt/apigee/customer/application/message-processor.properties
Misalnya, untuk membuka file menggunakan vi, masukkan kode berikut:
vi /opt/apigee/customer/application/message-processor.properties
- Hapus baris berikut dari file properti:
conf_http_HTTP.ignore.allow_header.for.405=true
- Simpan perubahan.
- Pastikan file properti dimiliki oleh pengguna
apigee
seperti yang ditunjukkan di bawah:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang Pemroses Pesan seperti yang ditunjukkan di bawah ini:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jika Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah-langkah di atas pada semua Pemroses Pesan Prosesor.
Memverifikasi header abaikan izinkan untuk properti 405 disetel ke salah (false) pada Pemroses Pesan
Bagian ini menjelaskan cara memverifikasi bahwa properti
HTTP.ignore.allow_header.for.405
telah berhasil diperbarui ke false
pada Message Processors.
Meskipun Anda menggunakan token
conf_http_HTTP.ignore.allow_header.for.405
untuk memperbarui nilai pada Pesan
Pemroses, Anda harus memverifikasi apakah properti HTTP.ignore.allow_header.for.405
yang sebenarnya
telah ditetapkan ke false
.
- Di mesin Pemroses Pesan, telusuri properti
HTTP.ignore.allow_header.for.405
di direktori/opt/apigee/edge-message- processor/conf
dan periksa apakah sudah disetel kefalse
seperti yang ditunjukkan di bawah ini:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti berhasil diperbarui di Pemroses Pesan, perintah di atas
harus menampilkan nilai properti
HTTP.ignore.allow_header.for.405
sebagaifalse
dalam filehttp.properties
seperti yang ditunjukkan di bawah ini:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Jika Anda masih melihat nilai untuk properti
HTTP.ignore.allow_header.for.405
sebagaitrue
, lalu verifikasi bahwa Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi header abaikan izinkan untuk properti 405 ke salah pada Pemroses Pesan dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah dengan benar. - Jika Anda tetap tidak dapat mengubah properti
HTTP.ignore.allow_header.for.405
, lalu hubungi Dukungan Apigee Edge.