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
, POST
và
HEAD
, 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:
- Đọc Cẩm nang - 502 Cổng vào không hợp lệ – phản hồi 405 không có tiêu đề Cho phép.
- Nếu bạn chưa hiểu rõ về cách định cấu hình các thuộc tính cho Edge trên Đám mây riêng tư, hãy đọc bài viết Cách định cấu hình Edge.
Đị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 true
trê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.
-
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
- 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
- Lưu các thay đổi.
- Đả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
- 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
- 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
.
- 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ànhtrue
như minh hoạ dưới đây:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- 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ạngtrue
trong tệphttp.properties
như minh hoạ dưới đây:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Nếu bạn vẫn thấy giá trị của thuộc tính
HTTP.ignore.allow_header.for.405
làfalse
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. - 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.
- Xác minh xem thuộc tính
HTTP.ignore.allow_header.for.405
có được sửa đổi thành hay khôngtrue
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
- 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ínhHTTP.ignore.allow_header.for.405
dưới dạngtrue
trong tệphttp.properties
như minh hoạ dưới đây:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Nếu lệnh trên cho thấy thuộc tính
HTTP.ignore.allow_header.for.405
được đặt thànhfalse
(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. - Nếu thuộc tính
HTTP.ignore.allow_header.for.405
được đặt thànhtrue
, rồi thực hiện các bước sau để chuyển về giá trị mặc địnhfalse
. 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
- Xoá dòng sau khỏi tệp thuộc tính:
conf_http_HTTP.ignore.allow_header.for.405=true
- Lưu các thay đổi.
- Đả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
- 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
- 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
.
- 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ànhfalse
hay chưa như minh hoạ bên dưới:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- 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ạngfalse
trong tệphttp.properties
như minh hoạ dưới đây:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Nếu bạn vẫn thấy giá trị của thuộc tính
HTTP.ignore.allow_header.for.405
làtrue
, 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. - 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.