Mengonfigurasi header izinkan diabaikan untuk properti 405 di Prosesor Pesan

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:

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.

  1. 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
  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:
    /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 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.

  1. Di mesin Pemroses Pesan, cari properti HTTP.ignore.allow_header.for.405 di direktori /opt/apigee/edge-message-processor/conf dan periksa apakah properti tersebut telah ditetapkan ke true seperti yang ditunjukkan di bawah:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Jika properti berhasil diupdate 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:
    /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 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
  4. 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.

  1. Verifikasi apakah properti HTTP.ignore.allow_header.for.405 diubah ke 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 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:
    /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), 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 mengembalikannya ke nilai default false.
  5. 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
    
  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:
    /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 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.

  1. Di mesin Pemroses Pesan, cari properti HTTP.ignore.allow_header.for.405 di 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 diupdate 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:
    /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 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.
  4. Jika Anda masih tidak dapat mengubah properti HTTP.ignore.allow_header.for.405, hubungi Dukungan Apigee Edge.