Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Dalam komunikasi klien-server, server akan merespons kembali dengan kode status HTTP 405
Method Not Allowed
jika
metode permintaan HTTP yang ditampilkan oleh klien diketahui oleh server,
tetapi tidak didukung oleh resource target. Demikian pula di Apigee Edge, server backend dapat merespons kembali dengan kode status HTTP 405 Method Not Allowed.
Apigee Edge mengharapkan server backend mengirimkan respons 405 Method Not Allowed
dengan daftar metode yang diizinkan di header Allow
, sesuai spesifikasi
RFC 7231, bagian 6.5.5: 405 Method Not Allowed.
Header Allow
harus dikirim dalam format berikut:
Allow: HTTP_METHODS
Misalnya, jika server backend Anda mengizinkan metode GET
, POST
, dan
HEAD
, Anda harus memastikan bahwa header Allow
memuatnya
seperti berikut:
Allow: GET, POST, HEAD
Jika server backend tidak mengirim header Allow
dengan kode status HTTP 405 Method Not Allowed,
, Apigee akan menampilkan kode status HTTP 502 Bad
Gateway
dengan kode error protocol.http.Response405WithoutAllowHeader
ke aplikasi klien. Solusi yang direkomendasikan untuk mengatasi error ini adalah
memperbaiki server backend agar mematuhi spesifikasi
RFC 7231, bagian 6.5.5: 405 Method Not Allowed atau menggunakan penanganan fault untuk
merespons kembali dengan kode status HTTP 405 Method Not Allowed
termasuk
header Allow
seperti yang dijelaskan dalam playbook pemecahan masalah
header 502 Bad Gateway - Response 405 tanpa Allow
Namun, dalam beberapa kasus tertentu, Anda mungkin tidak dapat memperbaiki backend atau mengubah Proxy API untuk segera mengatasi masalah ini.
Dalam kasus tersebut, Anda dapat menetapkan header izinkan abaikan untuk properti 405
HTTP.ignore.allow_header.for.405
di
tingkat Pemroses Pesan untuk sementara. Menetapkan properti ini ke true
akan mencegah Apigee menampilkan respons 502 Bad Gateway
ke aplikasi klien meskipun server backend mengirimkan kode status HTTP 405 Method Not Allowed
tanpa header Allow
.
Setelah berada di posisi untuk memperbaiki server backend untuk 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 - Gateway Bad 502 - respons 405 tanpa header Izinkan.
- Jika Anda tidak terbiasa mengonfigurasi properti untuk Edge di Private Cloud, baca Cara mengonfigurasi Edge.
Mengonfigurasi pengabaian izinkan header untuk properti 405 ke true di Message Processors
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 mengirim 502 Bad Gateway
ke aplikasi klien, Anda harus menetapkan nilai properti HTTP.ignore.allow_header.for.405
ke true
pada Pemroses Pesan.
Bagian ini menjelaskan cara mengonfigurasi properti
HTTP.ignore.allow_header.for.405
ke true
pada
Pemroses Pesan, menggunakan token sesuai sintaksis yang dijelaskan dalam
Cara mengonfigurasi Edge.
-
Di mesin Message Processor, buka file berikut di editor. Jika belum ada, maka buat.
/opt/apigee/customer/application/message-processor.properties
Misalnya, untuk membuka file menggunakan vi, masukkan perintah 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 ini:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang Prosesor 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.
Memverifikasi header pengabaian izinkan untuk properti 405 disetel ke benar (true) di Prosesor Pesan
Bagian ini menjelaskan cara memverifikasi bahwa properti HTTP.ignore.allow_header.for.405
telah berhasil diperbarui menjadi true
di Pemroses Pesan.
Meskipun Anda menggunakan token conf_http_HTTP.ignore.allow_header.for.405
untuk memperbarui nilai properti di Pemroses Pesan, Anda harus memverifikasi apakah properti HTTP.ignore.allow_header.for.405
yang sebenarnya telah ditetapkan ke true
.
- Pada mesin Message Processor, telusuri properti
HTTP.ignore.allow_header.for.405
dalam direktori/opt/apigee/edge-message-processor/conf
dan periksa apakah properti 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 akan 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
, pastikan bahwa Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi pengabaian header izinkan untuk properti 405 ke true di Prosesor Pesan dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah lagi dengan benar. - Jika Anda masih tidak dapat mengubah properti
HTTP.ignore.allow_header.for.405
, hubungi Dukungan Apigee Edge.
Mengonfigurasi pengabaian izinkan header untuk properti 405 menjadi salah (false) di Message Processors
Bagian ini menjelaskan cara mengonfigurasi properti
HTTP.ignore.allow_header.for.405
ke nilai default-nya false
pada Pemroses Pesan, menggunakan token sesuai dengan sintaksis yang dijelaskan dalam
Cara mengonfigurasi Edge.
- Pastikan 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 nilainya 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 akan menampilkan nilai propertiHTTP.ignore.allow_header.for.405
sepertitrue
dalam filehttp.properties
seperti yang ditunjukkan di bawah:/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
disetel kefalse
(nilai default), Anda tidak perlu melakukan apa pun. Artinya, lewati langkah-langkah berikut. - Jika properti
HTTP.ignore.allow_header.for.405
ditetapkan ketrue
, lakukan langkah-langkah berikut untuk kembali ke nilai defaultnyafalse
. Di mesin Message Processor, buka file berikut di editor:
/opt/apigee/customer/application/message-processor.properties
Misalnya, untuk membuka file menggunakan vi, masukkan perintah 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 ini:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang Prosesor 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.
Memverifikasi header pengabaian izinkan untuk properti 405 disetel ke salah (false) di Prosesor Pesan
Bagian ini menjelaskan cara memverifikasi bahwa properti HTTP.ignore.allow_header.for.405
telah berhasil diperbarui menjadi false
di Pemroses Pesan.
Meskipun Anda menggunakan token conf_http_HTTP.ignore.allow_header.for.405
untuk memperbarui nilai pada Pemroses Pesan, Anda harus memverifikasi apakah properti HTTP.ignore.allow_header.for.405
sebenarnya telah ditetapkan ke false
.
- Pada mesin Message Processor, telusuri properti
HTTP.ignore.allow_header.for.405
dalam direktori/opt/apigee/edge-message- processor/conf
dan periksa apakah properti tersebut telah ditetapkan kefalse
seperti yang ditunjukkan di bawah:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti berhasil diperbarui di Pemroses Pesan, perintah di atas akan 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
, pastikan bahwa Anda telah mengikuti semua langkah yang diuraikan dalam paging dikonfigurasikan mengabaikan header izinkan untuk properti 405 ke salah (false) di Pemroses Pesan dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah lagi dengan benar. - Jika Anda masih tidak dapat mengubah properti
HTTP.ignore.allow_header.for.405
, hubungi Dukungan Apigee Edge.