Anda 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 mengirim respons 405 Method Not Allowed dengan daftar metode yang diizinkan di header Allow, sesuai dengan 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 berisi metode tersebut
sebagai 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 gangguan untuk
merespons kembali dengan kode status HTTP 405 Method Not Allowed termasuk
header Allow seperti yang dijelaskan dalam playbook pemecahan masalah
502 Bad Gateway - Response 405 without Allow header.
Namun, dalam beberapa kasus luar biasa, Anda mungkin tidak dapat memperbaiki backend atau mengubah Proxy API untuk mengatasi masalah ini secara langsung.
Dalam kasus seperti itu, Anda dapat menetapkan header abaikan yang diizinkan 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 mengirim kode status HTTP 405 Method Not Allowed tanpa
header Allow.
Setelah Anda dapat 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 default 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 belum memahami cara mengonfigurasi properti untuk Edge di Private Cloud, baca Cara mengonfigurasi Edge.
Mengonfigurasi header abaikan yang diizinkan untuk properti 405 ke true di Pemroses Pesan
Di Apigee Edge, properti HTTP.ignore.allow_header.for.405 ditetapkan 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 mengirim kode status HTTP 405 Method Not
Allowed tanpa header Allow. Jika Anda ingin mencegah Apigee Edge dari
mengirim 502 Bad Gateway ke aplikasi klien, Anda harus menetapkan nilai properti HTTP.ignore.allow_header.for.405 ke true di Pemroses
Pesan.
Bagian ini menjelaskan cara mengonfigurasi properti
HTTP.ignore.allow_header.for.405 ke true di
Pemroses Pesan, menggunakan token sesuai sintaksis yang dijelaskan dalam
Cara mengonfigurasi Edge.
-
Di mesin Pemroses Pesan, buka file berikut di editor. Jika belum ada, buat file tersebut.
/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
apigeeseperti yang ditunjukkan di bawah:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang Pemroses Pesan seperti yang ditunjukkan di bawah:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jika Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah-langkah di atas di semua Pemroses Pesan.
Memverifikasi header abaikan yang diizinkan untuk properti 405 ditetapkan ke true di Pemroses Pesan
Bagian ini menjelaskan cara memverifikasi bahwa properti
HTTP.ignore.allow_header.for.405 telah berhasil diupdate ke true
di Pemroses Pesan.
Meskipun Anda menggunakan token conf_http_HTTP.ignore.allow_header.for.405 untuk mengupdate nilai properti di Pemroses Pesan, Anda harus memverifikasi apakah properti HTTP.ignore.allow_header.for.405 yang sebenarnya telah ditetapkan ke true.
- Di mesin Pemroses Pesan, cari properti
HTTP.ignore.allow_header.for.405di direktori/opt/apigee/edge-message-processor/confdan periksa apakah properti tersebut telah ditetapkan ketrueseperti yang ditunjukkan di bawah:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti berhasil diupdate di Pemroses Pesan, perintah di atas
akan menampilkan nilai properti
HTTP.ignore.allow_header.for.405sebagaitruedalam filehttp.propertiesseperti yang ditunjukkan di bawah:/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.405sebagaifalsepastikan Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi header abaikan yang diizinkan untuk properti 405 ke true di Pemroses Pesan dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah dengan benar - Jika Anda masih tidak dapat mengubah properti
HTTP.ignore.allow_header.for.405, hubungi Dukungan Apigee Edge.
Mengonfigurasi header abaikan yang diizinkan untuk properti 405 ke false di Pemroses Pesan
Bagian ini menjelaskan cara mengonfigurasi properti
HTTP.ignore.allow_header.for.405 ke nilai default false
di Pemroses Pesan, menggunakan token sesuai sintaksis yang dijelaskan dalam
Cara mengonfigurasi Edge.
- Verifikasi apakah properti
HTTP.ignore.allow_header.for.405diubah ketrue. Anda dapat melakukannya dengan menelusuri properti ini di direktori/opt/apigee/edge-message-processor/confdan memeriksa nilainya menggunakan perintah berikut:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti ditetapkan ke
truedi Pemroses Pesan, perintah di atas akan menampilkan nilai propertiHTTP.ignore.allow_header.for.405sebagaitruedalam filehttp.propertiesseperti 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.405ditetapkan kefalse(nilai default), Anda tidak perlu melakukan apa pun. Artinya, lewati langkah-langkah berikut. - Jika properti
HTTP.ignore.allow_header.for.405ditetapkan ketrue, lakukan langkah-langkah berikut untuk mengembalikannya ke nilai defaultfalse. Di mesin Pemroses Pesan, 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
apigeeseperti yang ditunjukkan di bawah:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang Pemroses Pesan seperti yang ditunjukkan di bawah:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jika Anda memiliki lebih dari satu Pemroses Pesan, ulangi langkah-langkah di atas di semua Pemroses Pesan.
Memverifikasi header abaikan yang diizinkan untuk properti 405 ditetapkan ke false di Pemroses Pesan
Bagian ini menjelaskan cara memverifikasi bahwa properti
HTTP.ignore.allow_header.for.405 telah berhasil diupdate ke false
di Pemroses Pesan.
Meskipun Anda menggunakan token
conf_http_HTTP.ignore.allow_header.for.405 untuk mengupdate nilai di Pemroses Pesan, Anda harus memverifikasi apakah properti HTTP.ignore.allow_header.for.405
yang sebenarnya telah ditetapkan ke false.
- Di mesin Pemroses Pesan, cari properti
HTTP.ignore.allow_header.for.405di direktori/opt/apigee/edge-message- processor/confdan periksa apakah properti tersebut telah ditetapkan kefalseseperti yang ditunjukkan di bawah:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jika properti berhasil diupdate di Pemroses Pesan, perintah di atas
akan menampilkan nilai properti
HTTP.ignore.allow_header.for.405sebagaifalsedalam filehttp.propertiesseperti yang ditunjukkan di bawah:/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.405sebagaitrue, pastikan Anda telah mengikuti semua langkah yang diuraikan dalam Mengonfigurasi header abaikan yang diizinkan untuk properti 405 ke false di Pemroses Pesan dengan benar. Jika Anda melewatkan langkah apa pun, ulangi semua langkah dengan benar. - Jika Anda masih tidak dapat mengubah properti
HTTP.ignore.allow_header.for.405, hubungi Dukungan Apigee Edge.