Mengonfigurasi header izinkan diabaikan untuk properti 405 di Prosesor Pesan

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:

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.

  1. 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
    
  2. Tambahkan baris dalam format berikut ke file properti:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Simpan perubahan.
  4. Pastikan file properti dimiliki oleh pengguna apigee seperti yang ditunjukkan di bawah ini:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Mulai ulang Prosesor Pesan seperti yang ditunjukkan di bawah ini:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 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.

  1. 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 ke true seperti yang ditunjukkan di bawah ini:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Jika properti berhasil diperbarui di Pemroses Pesan, perintah di atas akan menampilkan nilai properti HTTP.ignore.allow_header.for.405 sebagai true dalam file http.properties seperti yang ditunjukkan di bawah ini:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Jika Anda masih melihat nilai untuk properti HTTP.ignore.allow_header.for.405 sebagai false, 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.
  4. 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.

  1. Pastikan apakah properti HTTP.ignore.allow_header.for.405 diubah menjadi true. 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
    
  2. Jika properti ditetapkan ke true pada Pemroses Pesan, perintah di atas akan menampilkan nilai properti HTTP.ignore.allow_header.for.405 seperti true dalam file http.properties seperti yang ditunjukkan di bawah:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Jika perintah di atas menunjukkan bahwa properti HTTP.ignore.allow_header.for.405 disetel ke false (nilai default), Anda tidak perlu melakukan apa pun. Artinya, lewati langkah-langkah berikut.
  4. Jika properti HTTP.ignore.allow_header.for.405 ditetapkan ke true, lakukan langkah-langkah berikut untuk kembali ke nilai defaultnya false.
  5. 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
    
  6. Hapus baris berikut dari file properti:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Simpan perubahan.
  8. Pastikan file properti dimiliki oleh pengguna apigee seperti yang ditunjukkan di bawah ini:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Mulai ulang Prosesor Pesan seperti yang ditunjukkan di bawah ini:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. 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.

  1. 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 ke false seperti yang ditunjukkan di bawah:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Jika properti berhasil diperbarui di Pemroses Pesan, perintah di atas akan menampilkan nilai properti HTTP.ignore.allow_header.for.405 sebagai false dalam file http.properties seperti yang ditunjukkan di bawah ini:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Jika Anda masih melihat nilai untuk properti HTTP.ignore.allow_header.for.405 sebagai true, 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.
  4. Jika Anda masih tidak dapat mengubah properti HTTP.ignore.allow_header.for.405, hubungi Dukungan Apigee Edge.