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 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:

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 truepada 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.

  1. 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
    
  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:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Mulai ulang Pemroses 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 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.

  1. 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 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 harus 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 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.
  4. 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.

  1. Verifikasi 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 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 harus menunjukkan 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 perintah di atas menunjukkan bahwa properti HTTP.ignore.allow_header.for.405 ditetapkan ke false (nilai default), sehingga Anda tidak perlu melakukan apa pun. Yaitu, lewati langkah berikut.
  4. Jika properti HTTP.ignore.allow_header.for.405 ditetapkan ke true, lalu lakukan langkah-langkah berikut untuk kembali ke nilai default false.
  5. 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
    
  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:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Mulai ulang Pemroses 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 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.

  1. 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 ke false 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 harus 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, 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.
  4. Jika Anda tetap tidak dapat mengubah properti HTTP.ignore.allow_header.for.405, lalu hubungi Dukungan Apigee Edge.