การกําหนดค่าส่วนหัวอนุญาตการละเว้นสําหรับพร็อพเพอร์ตี้ 405 ในตัวประมวลผลข้อความ

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

ในการสื่อสารแบบไคลเอ็นต์กับเซิร์ฟเวอร์ เซิร์ฟเวอร์จะตอบกลับด้วยรหัสสถานะ HTTP 405 Method Not Allowed หาก เซิร์ฟเวอร์รู้จักวิธีการส่งคำขอ HTTP ที่ไคลเอ็นต์นำเสนอ แต่ทรัพยากรเป้าหมายไม่รองรับ ในทำนองเดียวกันใน Apigee Edge เซิร์ฟเวอร์แบ็กเอนด์สามารถทำสิ่งต่อไปนี้ได้ ตอบกลับด้วยรหัสสถานะ HTTP 405 Method Not Allowed.

Apigee Edge คาดว่าเซิร์ฟเวอร์แบ็กเอนด์จะส่งการตอบกลับ 405 Method Not Allowed รายการ พร้อมรายการเมธอดที่อนุญาตในส่วนหัว Allow ตามข้อกำหนด RFC 7231 ส่วน 6.5.5: 405 ไม่อนุญาตเมธอด

ส่วนหัว Allow ต้องส่งในรูปแบบต่อไปนี้

Allow: HTTP_METHODS

เช่น หากเซิร์ฟเวอร์แบ็กเอนด์อนุญาต GET, POST และ HEAD คุณต้องตรวจสอบว่าส่วนหัว Allow มีเมธอดเหล่านี้ ดังนี้

Allow: GET, POST, HEAD

หากเซิร์ฟเวอร์แบ็กเอนด์ไม่ส่งส่วนหัว Allow ที่มีรหัสสถานะ HTTP 405 Method Not Allowed, จากนั้น Apigee จะแสดงรหัสสถานะ HTTP 502 Bad Gateway ที่มีรหัสข้อผิดพลาด protocol.http.Response405WithoutAllowHeader ไปยัง แอปพลิเคชันไคลเอ็นต์ วิธีแก้ปัญหาที่แนะนำเพื่อแก้ไขข้อผิดพลาดนี้คือ เพื่อแก้ไขเซิร์ฟเวอร์แบ็กเอนด์ให้เป็นไปตามข้อกำหนด RFC 7231 ส่วน 6.5.5: 405 ไม่อนุญาตเมธอด หรือใช้การจัดการข้อผิดพลาดเพื่อ ตอบกลับด้วยรหัสสถานะ HTTP 405 Method Not Allowed รวมถึง ส่วนหัว Allow ตามที่อธิบายไว้ใน Playbook การแก้ปัญหา 502 เกตเวย์ไม่ถูกต้อง - การตอบกลับ 405 โดยไม่มีส่วนหัว Allow

อย่างไรก็ตาม ในบางกรณีที่พิเศษเข้ามา คุณอาจไม่สามารถแก้ไขส่วนหลัง หรือแก้ไข พร็อกซี API เพื่อจัดการปัญหานี้ทันที

ในกรณีดังกล่าว คุณอาจตั้งค่าส่วนหัวการอนุญาตการละเว้นสำหรับพร็อพเพอร์ตี้ 405 ได้ HTTP.ignore.allow_header.for.405ที่ ระดับตัวประมวลผลข้อความชั่วคราว การตั้งค่าพร็อพเพอร์ตี้นี้เป็น true จะป้องกัน Apigee ในการส่งคืนการตอบกลับ 502 Bad Gateway ไปยังแอปพลิเคชันไคลเอ็นต์แม้ว่า เซิร์ฟเวอร์แบ็กเอนด์จะส่งรหัสสถานะ HTTP 405 Method Not Allowed โดยไม่มี ส่วนหัว Allow

เมื่ออยู่ที่ตำแหน่งที่จะแก้ไขเซิร์ฟเวอร์แบ็กเอนด์ให้ส่งรหัสสถานะ HTTP 405 Method Not Allowed พร้อมส่วนหัว Allow แล้ว คุณสามารถเปลี่ยนพร็อพเพอร์ตี้กลับเป็นค่าเดิมได้ HTTP.ignore.allow_header.for.405 เป็นค่าเริ่มต้น false

ก่อนเริ่มต้น

ก่อนที่จะใช้ขั้นตอนในเอกสารนี้ โปรดทำความเข้าใจหัวข้อต่อไปนี้

การกำหนดค่าการละเว้นอนุญาตให้ส่วนหัวสำหรับพร็อพเพอร์ตี้ 405 เป็นจริงบนตัวประมวลผลข้อความ

ใน Apigee Edge พร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 มีการตั้งค่าเป็น false โดยค่าเริ่มต้น การดำเนินการนี้จะทำให้ Apigee Edge แสดงผล 502 Bad Gateway ที่มีรหัสข้อผิดพลาด protocol.http.Response405WithoutAllowHeader ไปยัง แอปพลิเคชันไคลเอ็นต์หากเซิร์ฟเวอร์แบ็กเอนด์ส่งรหัสสถานะ HTTP 405 Method Not Allowed โดยไม่มีส่วนหัว Allow หากคุณต้องการป้องกันไม่ให้ Apigee Edge ดำเนินการต่อไปนี้ กำลังส่ง 502 Bad Gateway ไปยังแอปพลิเคชันไคลเอ็นต์ คุณจะต้องตั้งค่า พร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 ไปยัง true ในข้อความ ผู้ประมวลผลข้อมูล

ส่วนนี้อธิบายวิธีกําหนดค่าพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 ถึง true ในวันที่ ตัวประมวลผลข้อความ โดยใช้โทเค็นตามไวยากรณ์ที่อธิบายไว้ใน วิธีกำหนดค่า Edge

  1. ให้เปิดไฟล์ต่อไปนี้ในตัวแก้ไขในเครื่องประมวลผลข้อความ หากไม่เป็นเช่นนั้น มีอยู่แล้ว ให้สร้างขึ้นมา

    /opt/apigee/customer/application/message-processor.properties
    

    เช่น หากต้องการเปิดไฟล์โดยใช้ vi ให้ป้อนข้อมูลต่อไปนี้

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. เพิ่มบรรทัดในรูปแบบต่อไปนี้ลงในไฟล์พร็อพเพอร์ตี้
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. บันทึกการเปลี่ยนแปลง
  4. ตรวจสอบว่าผู้ใช้ apigee เป็นเจ้าของไฟล์พร็อพเพอร์ตี้ดังที่แสดงด้านล่าง
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. รีสตาร์ทโปรแกรมประมวลผลข้อความดังที่แสดงด้านล่าง
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. หากคุณมีโปรแกรมประมวลผลข้อความมากกว่า 1 ระบบ ให้ทำขั้นตอนข้างต้นซ้ำในส่วน "ข้อความ" ทั้งหมด ผู้ประมวลผลข้อมูล

ตั้งค่าส่วนหัวการอนุญาตการละเว้นสำหรับพร็อพเพอร์ตี้ 405 เป็น "จริง" ในตัวประมวลผลข้อความ

ส่วนนี้อธิบายวิธียืนยันพร็อพเพอร์ตี้ อัปเดต HTTP.ignore.allow_header.for.405 เป็น true เรียบร้อยแล้ว โปรแกรมประมวลผลข้อความ

แม้ว่าคุณจะใช้โทเค็น conf_http_HTTP.ignore.allow_header.for.405 เพื่ออัปเดต ค่าของพร็อพเพอร์ตี้ในตัวประมวลผลข้อความ คุณจะต้องตรวจสอบว่าพร็อพเพอร์ตี้จริง ตั้งค่า HTTP.ignore.allow_header.for.405 เป็น true แล้ว

  1. ค้นหาคุณสมบัติในเครื่องประมวลผลข้อความ HTTP.ignore.allow_header.for.405 ในช่วง /opt/apigee/edge-message-processor/conf แล้วตรวจสอบว่า ถูกตั้งค่าเป็น true แล้ว ดังที่แสดงด้านล่าง
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. หากอัปเดตคุณสมบัติในตัวประมวลผลข้อความเรียบร้อยแล้ว ให้ใช้คำสั่งด้านบน ควรแสดงค่าของพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็น true ในไฟล์ http.properties ดังที่แสดงด้านล่าง
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. หากคุณยังคงเห็นค่าของพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็น false จากนั้นยืนยันว่าคุณได้ทำตามขั้นตอนทั้งหมดที่ระบุใน การกำหนดค่าส่วนหัวการอนุญาตการละเว้นสำหรับพร็อพเพอร์ตี้ 405 เป็น "จริง" ตัวประมวลผลข้อความอย่างถูกต้อง หากคุณพลาดขั้นตอนใดไป ให้ทำซ้ำขั้นตอนทั้งหมดอีกครั้ง อย่างถูกต้อง
  4. หากคุณยังคงไม่สามารถแก้ไขพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 จากนั้นติดต่อทีมสนับสนุนของ Apigee Edge

การกำหนดค่าการละเว้นอนุญาตให้ส่วนหัวสำหรับพร็อพเพอร์ตี้ 405 มีค่าเป็น false ในตัวประมวลผลข้อความ

ส่วนนี้อธิบายวิธีกําหนดค่าพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็นค่าเริ่มต้น false ใน Message Processor โดยใช้โทเค็นตามไวยากรณ์ที่อธิบายไว้ใน วิธีกำหนดค่า Edge

  1. ตรวจสอบว่าพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 ได้รับการแก้ไขหรือไม่ true ซึ่งทำได้โดยการค้นหาพร็อพเพอร์ตี้นี้ ในไดเรกทอรี /opt/apigee/edge-message-processor/conf และตรวจสอบ URL โดยใช้คำสั่งต่อไปนี้
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. หากตั้งค่าพร็อพเพอร์ตี้เป็น true ในตัวประมวลผลข้อความ ให้ใช้คำสั่งด้านบน ควรแสดงค่าของพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็น true ในไฟล์ http.properties ดังที่แสดงด้านล่าง
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. หากคำสั่งด้านบนแสดงว่าพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 ตั้งค่าเป็น false (ค่าเริ่มต้น) คุณจึงไม่ต้องดำเนินการใดๆ นั่นคือ ข้ามขั้นตอนต่อไปนี้
  4. หากตั้งค่าพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็น true จากนั้นให้ทำตามขั้นตอนต่อไปนี้เพื่อเปลี่ยนกลับเป็นค่าเริ่มต้น false
  5. ให้เปิดไฟล์ต่อไปนี้ในตัวแก้ไขในเครื่องประมวลผลข้อความ

    /opt/apigee/customer/application/message-processor.properties
    

    เช่น หากต้องการเปิดไฟล์โดยใช้ vi ให้ป้อนข้อมูลต่อไปนี้

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. นำบรรทัดต่อไปนี้ออกจากไฟล์พร็อพเพอร์ตี้
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. บันทึกการเปลี่ยนแปลง
  8. ตรวจสอบว่าผู้ใช้ apigee เป็นเจ้าของไฟล์พร็อพเพอร์ตี้ดังที่แสดงด้านล่าง
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. รีสตาร์ทโปรแกรมประมวลผลข้อความดังที่แสดงด้านล่าง
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. หากคุณมีโปรแกรมประมวลผลข้อความมากกว่า 1 ระบบ ให้ทำขั้นตอนข้างต้นซ้ำในส่วน "ข้อความ" ทั้งหมด ผู้ประมวลผลข้อมูล

มีการตั้งค่าส่วนหัวการอนุญาตการละเว้นสำหรับพร็อพเพอร์ตี้ 405 เป็น "เท็จ" ในตัวประมวลผลข้อความ

ส่วนนี้อธิบายวิธียืนยันพร็อพเพอร์ตี้ อัปเดต HTTP.ignore.allow_header.for.405 เป็น false เรียบร้อยแล้ว โปรแกรมประมวลผลข้อความ

แม้ว่าคุณจะใช้โทเค็น conf_http_HTTP.ignore.allow_header.for.405 เพื่ออัปเดตค่าของข้อความ ผู้ประมวลผลข้อมูล คุณต้องตรวจสอบว่าพร็อพเพอร์ตี้จริง HTTP.ignore.allow_header.for.405 ถูกตั้งค่าเป็น false แล้ว

  1. ค้นหาคุณสมบัติในเครื่องประมวลผลข้อความ HTTP.ignore.allow_header.for.405 ในไดเรกทอรี /opt/apigee/edge-message- processor/conf และตรวจสอบว่ามีการตั้งค่าเป็น false ตามที่แสดงหรือไม่ ด้านล่าง
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. หากอัปเดตคุณสมบัติในตัวประมวลผลข้อความเรียบร้อยแล้ว ให้ใช้คำสั่งด้านบน ควรแสดงค่าของพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็น false ในไฟล์ http.properties ดังที่แสดงด้านล่าง
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. หากคุณยังคงเห็นค่าของพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 เป็น true จากนั้นยืนยันว่าคุณได้ทำตามขั้นตอนทั้งหมดที่ระบุใน การกำหนดค่าการละเว้นอนุญาตให้ส่วนหัวสำหรับพร็อพเพอร์ตี้ 405 มีค่าเป็น false ในตัวประมวลผลข้อความ อย่างถูกต้อง หากคุณพลาดขั้นตอนใดไป ให้ทำขั้นตอนทั้งหมดซ้ำให้ถูกต้อง
  4. หากคุณยังคงไม่สามารถแก้ไขพร็อพเพอร์ตี้ HTTP.ignore.allow_header.for.405 จากนั้นติดต่อทีมสนับสนุนของ Apigee Edge