Định cấu hình tiêu đề cho phép bỏ qua cho thuộc tính 405 trong Bộ xử lý thông báo

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

Trong hoạt động giao tiếp giữa máy khách và máy chủ, máy chủ sẽ phản hồi bằng mã trạng thái HTTP 405 Method Not Allowed nếu Phương thức yêu cầu HTTP mà máy khách trình bày đã được máy chủ xác định nhưng không được tài nguyên mục tiêu hỗ trợ. Tương tự như trong Apigee Edge, máy chủ phụ trợ có thể phản hồi lại bằng mã trạng thái HTTP 405 Method Not Allowed.

Apigee Edge dự kiến máy chủ phụ trợ sẽ gửi 405 Method Not Allowed phản hồi với danh sách các phương thức được phép trong tiêu đề Allow, theo thông số kỹ thuật RFC 7231, mục 6.5.5: 405 Phương thức không được phép.

Tiêu đề Allow phải được gửi ở định dạng sau:

Allow: HTTP_METHODS

Ví dụ: nếu máy chủ phụ trợ của bạn cho phép GET, POSTHEAD, bạn cần đảm bảo rằng tiêu đề Allow có chứa các phương thức đó như sau:

Allow: GET, POST, HEAD

Nếu máy chủ phụ trợ không gửi tiêu đề Allow kèm theo mã trạng thái HTTP 405 Method Not Allowed,, sau đó Apigee sẽ trả về mã trạng thái HTTP 502 Bad Gateway kèm mã lỗi protocol.http.Response405WithoutAllowHeader cho thuộc tính . Giải pháp được đề xuất để giải quyết lỗi này là để sửa máy chủ phụ trợ nhằm tuân thủ thông số kỹ thuật RFC 7231, mục 6.5.5: 405 Phương pháp không được phép hoặc sử dụng xử lý lỗi để sẽ phản hồi lại bằng mã trạng thái HTTP 405 Method Not Allowed bao gồm Tiêu đề Allow như được giải thích trong sách khắc phục sự cố 502 Cổng vào không hợp lệ – Phản hồi 405 không có tiêu đề Cho phép.

Tuy nhiên, trong một số trường hợp đặc biệt, có thể chương trình phụ trợ của bạn không sửa đổi được Proxy API để giải quyết vấn đề này ngay lập tức.

Trong những trường hợp như vậy, bạn có thể đặt tiêu đề bỏ qua cho phép cho thuộc tính 405 HTTP.ignore.allow_header.for.405 ở Tạm thời ở cấp Trình xử lý tin nhắn. Việc đặt thuộc tính này thành true sẽ ngăn Apigee khi trả về phản hồi 502 Bad Gateway cho các ứng dụng khách ngay cả khi máy chủ phụ trợ gửi mã trạng thái HTTP 405 Method Not Allowed mà không có Tiêu đề Allow.

Khi đã khắc phục xong máy chủ phụ trợ để gửi mã trạng thái HTTP 405 Method Not Allowed cùng với tiêu đề Allow, bạn có thể huỷ bỏ thuộc tính HTTP.ignore.allow_header.for.405 thành giá trị mặc định false.

Trước khi bắt đầu

Trước khi làm theo các bước trong tài liệu này, hãy đảm bảo bạn hiểu rõ các chủ đề sau:

Định cấu hình tiêu đề bỏ qua cho phép cho thuộc tính 405 thành true trên Bộ xử lý thư

Trong Apigee Edge, thuộc tính HTTP.ignore.allow_header.for.405 được đặt thành false theo mặc định. Thao tác này cho phép Apigee Edge trả về 502 Bad Gateway có mã lỗi protocol.http.Response405WithoutAllowHeader về ứng dụng khách nếu máy chủ phụ trợ gửi mã trạng thái HTTP 405 Method Not Allowed mà không có tiêu đề Allow. Nếu bạn muốn ngăn Apigee Edge đang gửi 502 Bad Gateway đến các ứng dụng, thì bạn cần đặt giá trị của thuộc tính HTTP.ignore.allow_header.for.405 cho truetrên Thông báo Bộ xử lý.

Phần này giải thích cách định cấu hình tài sản HTTP.ignore.allow_header.for.405 đến true trên Trình xử lý thư, sử dụng mã thông báo này theo cú pháp được mô tả trong Cách định cấu hình Edge.

  1. Trên máy Trình xử lý thư, mở tệp sau trong trình chỉnh sửa. Nếu không đã tồn tại, thì hãy tạo nó.

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

    Ví dụ: để mở tệp bằng vi, hãy nhập những thông tin sau:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Thêm một dòng ở định dạng sau vào tệp thuộc tính:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Lưu các thay đổi.
  4. Đảm bảo tệp thuộc tính thuộc sở hữu của người dùng apigee như minh hoạ dưới đây:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Khởi động lại Trình xử lý thư như minh hoạ dưới đây:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Nếu bạn có nhiều Trình xử lý thư, hãy lặp lại các bước trên cho tất cả các Thư Bộ xử lý.

Việc xác minh tiêu đề bỏ qua cho phép đối với thuộc tính 405 được đặt thành true trên Bộ xử lý thư

Phần này giải thích cách xác minh rằng cơ sở lưu trú này Đã cập nhật xong HTTP.ignore.allow_header.for.405 lên true Trình xử lý thư.

Mặc dù bạn sử dụng mã thông báo conf_http_HTTP.ignore.allow_header.for.405 để cập nhật giá trị của thuộc tính trên Trình xử lý tin nhắn, bạn cần xác minh xem thuộc tính thực tế Đã đặt HTTP.ignore.allow_header.for.405 thành true.

  1. Trên máy Xử lý thư, hãy tìm kiếm thuộc tính HTTP.ignore.allow_header.for.405 trong Thư mục /opt/apigee/edge-message-processor/conf và kiểm tra xem thư mục đó có đã được đặt thành true như minh hoạ dưới đây:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Nếu thuộc tính được cập nhật thành công trên Trình xử lý thư thì lệnh trên sẽ hiển thị giá trị của thuộc tính HTTP.ignore.allow_header.for.405 dưới dạng true trong tệp http.properties như minh hoạ dưới đây:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Nếu bạn vẫn thấy giá trị của thuộc tính HTTP.ignore.allow_header.for.405false rồi xác minh rằng bạn đã làm theo tất cả bước nêu trong Định cấu hình tiêu đề bỏ qua cho phép cho thuộc tính 405 thành true trong Trình xử lý thư chính xác. Nếu bạn đã bỏ lỡ bất kỳ bước nào, hãy lặp lại tất cả các bước này chính xác.
  4. Nếu bạn vẫn không thể chỉnh sửa tài sản đó HTTP.ignore.allow_header.for.405, sau đó liên hệ với Bộ phận hỗ trợ Apigee Edge.

Định cấu hình tiêu đề bỏ qua cho phép cho thuộc tính 405 thành false trên Bộ xử lý thư

Phần này giải thích cách định cấu hình tài sản HTTP.ignore.allow_header.for.405 thành giá trị mặc định false trên Trình xử lý thư, sử dụng mã thông báo theo cú pháp đã mô tả trong Cách định cấu hình Edge.

  1. Xác minh xem thuộc tính HTTP.ignore.allow_header.for.405 có được sửa đổi thành hay không true Bạn có thể tìm thông tin về cơ sở lưu trú này trong thư mục /opt/apigee/edge-message-processor/conf và kiểm tra bằng lệnh sau:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Nếu thuộc tính được đặt thành true trên Trình xử lý thư, thì lệnh trên sẽ hiển thị giá trị của thuộc tính HTTP.ignore.allow_header.for.405 dưới dạng true trong tệp http.properties như minh hoạ dưới đây:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Nếu lệnh trên cho thấy thuộc tính HTTP.ignore.allow_header.for.405 được đặt thành false (giá trị mặc định), thì bạn không phải làm gì thêm. Tức là bỏ qua các bước sau đây.
  4. Nếu thuộc tính HTTP.ignore.allow_header.for.405 được đặt thành true, rồi thực hiện các bước sau để chuyển về giá trị mặc định false.
  5. Trên máy Trình xử lý thư, mở tệp sau trong trình chỉnh sửa:

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

    Ví dụ: để mở tệp bằng vi, hãy nhập những thông tin sau:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Xoá dòng sau khỏi tệp thuộc tính:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Lưu các thay đổi.
  8. Đảm bảo tệp thuộc tính thuộc sở hữu của người dùng apigee như minh hoạ dưới đây:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Khởi động lại Trình xử lý thư như minh hoạ dưới đây:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Nếu bạn có nhiều Trình xử lý thư, hãy lặp lại các bước trên cho tất cả các Thư Bộ xử lý.

Việc xác minh tiêu đề bỏ qua cho phép đối với thuộc tính 405 được đặt thành false trên Bộ xử lý thư

Phần này giải thích cách xác minh rằng cơ sở lưu trú này Đã cập nhật xong HTTP.ignore.allow_header.for.405 lên false Trình xử lý thư.

Mặc dù bạn sử dụng mã thông báo conf_http_HTTP.ignore.allow_header.for.405 để cập nhật giá trị trên Tin nhắn Đơn vị xử lý, bạn cần xác minh xem thuộc tính HTTP.ignore.allow_header.for.405 có thực sự không đã được đặt thành false.

  1. Trên máy Xử lý thư, hãy tìm kiếm thuộc tính HTTP.ignore.allow_header.for.405 trong thư mục /opt/apigee/edge-message- processor/conf và kiểm tra xem thư mục này đã được đặt thành false hay chưa như minh hoạ bên dưới:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Nếu thuộc tính được cập nhật thành công trên Trình xử lý thư thì lệnh trên sẽ hiển thị giá trị của thuộc tính HTTP.ignore.allow_header.for.405 dưới dạng false trong tệp http.properties như minh hoạ dưới đây:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Nếu bạn vẫn thấy giá trị của thuộc tính HTTP.ignore.allow_header.for.405true, sau đó xác minh rằng bạn đã làm theo tất cả bước nêu trong Định cấu hình tiêu đề bỏ qua cho phép đối với thuộc tính 405 thành false trên Bộ xử lý thư chính xác. Nếu bạn đã bỏ lỡ bất kỳ bước nào, hãy lặp lại tất cả các bước một cách chính xác.
  4. Nếu bạn vẫn không thể chỉnh sửa tài sản đó HTTP.ignore.allow_header.for.405, sau đó liên hệ với Bộ phận hỗ trợ Apigee Edge.