Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Chủ đề này mô tả các thuộc tính truyền tải có thể được thiết lập trong các cấu hình TargetEndpoint và ProxyEndpoint để kiểm soát hoạt động nhắn tin và kết nối. Để biết toàn bộ thông tin về cấu hình TargetEndpoint và ProxyEndpoint, hãy xem tài liệu tham khảo về cấu hình proxy API.
Thuộc tính truyền tải TargetEndpoint
Phần tử HTTPTargetConnection trong cấu hình TargetEndpoint xác định một tập hợp các thuộc tính truyền tải HTTP. Bạn có thể sử dụng các thuộc tính này để đặt cấu hình cấp độ phương tiện vận chuyển.
Thuộc tính được đặt trên các phần tử TargetEndpoint HTTPTargetConnection như sau:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="supports.http10">true</Property> <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property> <Property name="retain.queryparams">apikey</Property> </Properties> <CommonName>COMMON_NAME_HERE</CommonName> </HTTPTargetConnection> </TargetEndpoint>
Thông số kỹ thuật của thuộc tính truyền tải TargetEndpoint
Tên thuộc tính | Giá trị mặc định | Nội dung mô tả |
---|---|---|
keepalive.timeout.millis |
60000 |
Thời gian chờ ở trạng thái rảnh của kết nối đối với kết nối mục tiêu trong nhóm kết nối. Nếu kết nối trong nhóm không hoạt động vượt quá giới hạn đã chỉ định, thì kết nối sẽ bị đóng. |
connect.timeout.millis |
|
Thời gian chờ của kết nối mục tiêu. Edge sẽ trả về một mã trạng thái HTTP |
io.timeout.millis |
55000 |
Nếu không có dữ liệu để đọc cho số mili giây đã chỉ định hoặc nếu ổ cắm chưa sẵn sàng ghi dữ liệu cho số mili giây đã chỉ định, thì giao dịch sẽ được coi là hết thời gian chờ.
Giá trị này phải luôn nhỏ hơn giá trị của thuộc tính proxy_read_timeout của máy chủ ảo. Giá trị này phải nhỏ hơn thời gian chờ mà Bộ định tuyến sử dụng để giao tiếp với Bộ xử lý thông báo. Hãy xem bài viết Định cấu hình thời gian chờ của bộ định tuyến để tìm hiểu thêm. Hãy xem bài viết Cài đặt io.timeout.millis và api.timeout cho Edge để biết thêm thông tin. |
supports.http10 |
true |
Nếu đây là true và ứng dụng gửi yêu cầu 1.0, thì mục tiêu cũng sẽ được gửi yêu cầu 1.0. Nếu không, yêu cầu 1.1 sẽ được gửi để nhắm mục tiêu. |
supports.http11 |
true |
Nếu đây là true và ứng dụng gửi yêu cầu 1.1, thì mục tiêu cũng sẽ được gửi yêu cầu 1.1, nếu không yêu cầu 1.0 sẽ được gửi đến mục tiêu. |
use.proxy |
true |
Nếu bạn đặt thành true và cấu hình proxy được chỉ định trong http.properties (chỉ triển khai tại chỗ), thì các kết nối mục tiêu sẽ được thiết lập để sử dụng proxy đã chỉ định. |
use.proxy.tunneling |
true |
Nếu bạn đặt thuộc tính này thành true và cấu hình proxy được chỉ định trong http.properties (chỉ các hoạt động triển khai tại cơ sở), thì kết nối mục tiêu sẽ được thiết lập để sử dụng đường hầm được chỉ định. Nếu mục tiêu sử dụng TLS/SSL, thuộc tính này sẽ bị bỏ qua và thông báo luôn được gửi qua đường hầm. |
enable.method.override |
false |
Đối với phương thức HTTP đã chỉ định, hãy đặt tiêu đề X-HTTP-Method-Override trên yêu cầu gửi đi đến dịch vụ mục tiêu. Ví dụ: <Property
name="GET.override.method">POST</Property> |
*.override.method |
Không áp dụng | Đối với phương thức HTTP được chỉ định, hãy đặt tiêu đề X-HTTP-Method-Override trên yêu cầu gửi đi. Ví dụ: <Property
name="GET.override.method">POST</Property> |
request.streaming.enabled |
false |
Theo mặc định ( |
response.streaming.enabled |
false |
Theo mặc định ( |
success.codes |
Không áp dụng |
Theo mặc định, Apigee Edge sẽ coi mã HTTP Việc đặt thuộc tính này sẽ ghi đè các giá trị mặc định. Do đó, nếu bạn muốn thêm mã HTTP <Property name="Success.codes">1XX,2XX,3XX,400</Property> Nếu bạn chỉ muốn coi mã HTTP <Property name="Success.codes">400</Property> Khi bạn đặt mã HTTP |
compression.algorithm |
Không áp dụng |
Theo mặc định, Apigee Edge sẽ chuyển tiếp các yêu cầu đến mục tiêu bằng cùng một loại nén với yêu cầu của khách hàng. Nếu ứng dụng nhận được yêu cầu bằng cách sử dụng tệp nén gzip, thì Apigee Edge sẽ chuyển tiếp yêu cầu tới nơi bằng cách nén gzip. Nếu phản hồi nhận được từ mục tiêu sử dụng deflate, thì Apigee Edge sẽ chuyển tiếp phản hồi tới ứng dụng bằng cách sử dụng deflate. Sau đây là các giá trị được hỗ trợ:
Xem thêm: Apigee có hỗ trợ tính năng nén/loại bỏ nén bằng tính năng nén GZIP/deflate không? |
request.retain.headers. |
true |
Theo mặc định, Apigee Edge luôn giữ lại tất cả các tiêu đề HTTP đối với các thư được gửi đi. Khi bạn đặt thành true , tất cả tiêu đề HTTP có trong yêu cầu đến sẽ được đặt theo yêu cầu gửi đi. |
request.retain.headers |
Không áp dụng | Xác định các tiêu đề HTTP cụ thể trong yêu cầu cần được đặt trong yêu cầu gửi đi đến dịch vụ mục tiêu. Ví dụ: để truyền qua tiêu đề User-Agent , hãy đặt giá trị của request.retain.headers thành User-Agent .
Nhiều tiêu đề HTTP được chỉ định dưới dạng một danh sách phân tách bằng dấu phẩy, ví dụ: User-Agent,Referer,Accept-Language . Thuộc tính này ghi đè
request.retain.headers.enabled . Nếu bạn đặt request.retain.headers.enabled thành false , thì mọi tiêu đề được chỉ định trong thuộc tính request.retain.headers vẫn sẽ được đặt trên thư gửi đi. |
response.retain.headers. |
true |
Theo mặc định, Apigee Edge luôn giữ lại tất cả các tiêu đề HTTP đối với các thư được gửi đi. Khi được đặt thành true , tất cả tiêu đề HTTP có trong phản hồi đến từ dịch vụ mục tiêu sẽ được đặt trong phản hồi đi trước khi được truyền đến ProxyEndpoint. |
response.retain.headers |
Không áp dụng | Xác định các tiêu đề HTTP cụ thể trong phản hồi cần được đặt trong phản hồi đi trước khi được truyền đến ProxyEndpoint. Ví dụ: để truyền qua tiêu đề Expires , hãy đặt giá trị của response.retain.headers thành Expires . Nhiều tiêu đề HTTP được chỉ định dưới dạng một danh sách được phân tách bằng dấu phẩy, ví dụ: Expires,Set-Cookie . Thuộc tính này ghi đè
response.retain.headers.enabled . Nếu bạn đặt response.retain.headers.enabled thành false , thì mọi tiêu đề được chỉ định trong thuộc tính response.retain.headers vẫn sẽ được đặt trên thư gửi đi. |
retain.queryparams. |
true |
Theo mặc định, Apigee Edge luôn giữ lại mọi tham số truy vấn trong các yêu cầu gửi đi. Khi được đặt thành true , tất cả tham số truy vấn có trong yêu cầu đến sẽ được đặt trong yêu cầu gửi đến dịch vụ mục tiêu. |
retain.queryparams |
Không áp dụng | Xác định các tham số truy vấn cụ thể để đặt trong yêu cầu đi. Ví dụ: để đưa tham số truy vấn apikey vào thông điệp yêu cầu, hãy đặt retain.queryparams thành apikey . Nhiều tham số truy vấn được chỉ định dưới dạng một danh sách được phân tách bằng dấu phẩy, ví dụ: apikey,environment . Thuộc tính này
ghi đè retain.queryparams.enabled . |
Thuộc tính truyền tải ProxyEndpoint
Các phần tử ProxyEndpoint HTTPTargetConnection xác định tập hợp các thuộc tính truyền tải HTTP. Bạn có thể dùng các thuộc tính này để thiết lập cấu hình cấp phương tiện vận chuyển.
Các thuộc tính được đặt trên các phần tử ProxyEndpoint HTTPProxyConnection như sau:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <Property name="request.streaming.enabled">true</Property> </Properties> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> </ProxyEndpoint>
Để biết thêm thông tin về máy chủ ảo, hãy xem phần Giới thiệu về máy chủ ảo.
Thuộc tính truyền tải ProxyEndpoint Thông số kỹ thuật
Tên thuộc tính | Giá trị mặc định | Nội dung mô tả |
---|---|---|
X-Forwarded-For |
false |
Khi bạn đặt thành true , địa chỉ IP của máy chủ ảo sẽ được thêm vào yêu cầu gửi đi dưới dạng giá trị của tiêu đề HTTP X-Forwarded-For . |
request.streaming. |
false |
Theo mặc định (false ), tải trọng yêu cầu HTTP được đọc trong vùng đệm và các chính sách có thể hoạt động trên tải trọng hoạt động như dự kiến. Trong trường hợp các tải trọng lớn hơn dung lượng bộ nhớ đệm (10 MB), bạn có thể đặt thuộc tính này thành true . Khi true , các tải trọng yêu cầu HTTP không được đọc vào vùng đệm; chúng được truyền trực tuyến nguyên trạng đến luồng yêu cầu TargetEndpoint. Trong trường hợp này, mọi chính sách hoạt động trên tải trọng trong quy trình yêu cầu ProxyEndpoint đều bị bỏ qua. Xem thêm về Yêu cầu truyền trực tuyến và phản hồi. |
response.streaming. |
false |
Theo mặc định (false ), các tải trọng phản hồi HTTP được đọc trong vùng đệm và các chính sách có thể hoạt động trên tải trọng dữ liệu hoạt động như dự kiến. Trong trường hợp các tải trọng lớn hơn dung lượng bộ nhớ đệm (10 MB), bạn có thể đặt thuộc tính này thành true . Khi true , các tải trọng phản hồi HTTP không được đọc vào vùng đệm; chúng được
truyền trực tuyến nguyên trạng đến máy khách. Trong trường hợp này, mọi chính sách hoạt động trên tải trọng trong quy trình phản hồi ProxyEndpoint đều sẽ bị bỏ qua. Xem thêm về Yêu cầu truyền trực tuyến và phản hồi. |
compression.algorithm |
Không áp dụng |
Theo mặc định, Apigee Edge dựa trên loại nén được đặt cho mọi thông báo nhận được. Ví dụ: Khi khách hàng gửi một yêu cầu sử dụng chức năng nén gzip, Apigee Edge sẽ chuyển tiếp yêu cầu đó tới khách hàng bằng cách nén gzip. Bạn có thể định cấu hình thuật toán nén để được áp dụng rõ ràng bằng cách đặt thuộc tính này trên TargetEndpoint hoặc ProxyEndpoint. Sau đây là các giá trị được hỗ trợ:
Xem thêm: Apigee có hỗ trợ tính năng nén/loại bỏ nén bằng tính năng nén GZIP/deflate không? |
api.timeout |
Không áp dụng |
Định cấu hình thời gian chờ cho các proxy API riêng lẻ Bạn có thể định cấu hình các proxy API, ngay cả những proxy đã bật tính năng phát trực tuyến, để hết thời gian chờ sau một thời gian chỉ định với trạng thái
Bạn không thể đặt thuộc tính này bằng một biến. Những khách hàng không thể sửa đổi thời gian chờ của Edge cũng có thể định cấu hình thời gian chờ của proxy API, miễn là thời gian chờ ngắn hơn thời gian chờ tiêu chuẩn của trình xử lý thông báo Edge là 57 giây. Hãy xem bài viết Cài đặt io.timeout.millis và api.timeout cho Edge để biết thêm thông tin. |
Đặt io.timeout.millis và api.timeout cho Edge
Trên Edge, hoạt động của io.timeout.millis
và api.timeout
có liên quan với nhau.
Trong mọi yêu cầu gửi đến proxy API:
- Bộ định tuyến gửi giá trị hết thời gian chờ cho Bộ xử lý thông báo. Giá trị thời gian chờ của Bộ định tuyến là giá trị của
proxy_read_timeout
do máy chủ ảo thiết lập xử lý yêu cầu hoặc giá trị thời gian chờ mặc định là 57 giây. - Sau đó, Trình xử lý tin nhắn sẽ thiết lập
api.timeout
:- Nếu
api.timeout
không được đặt ở cấp proxy, hãy đặt thành thời gian chờ của Bộ định tuyến. - Nếu
api.timeout
được đặt ở cấp proxy, hãy đặt giá trị này trên Bộ xử lý thông báo thành thời gian chờ của bộ định tuyến thấp hơn hoặc giá trịapi.timeout
.
- Nếu
Giá trị của
api.timeout
chỉ định khoảng thời gian tối đa mà một proxy API phải thực thi từ lúc yêu cầu API đến khi phản hồi.Sau khi mỗi chính sách trong proxy API thực thi hoặc trước khi Bộ xử lý thông báo gửi yêu cầu đến điểm cuối mục tiêu, Bộ xử lý thông báo sẽ tính toán (
api.timeout
– thời gian đã trôi qua kể từ khi bắt đầu yêu cầu). Nếu giá trị này nhỏ hơn 0, tức là khoảng thời gian tối đa để xử lý yêu cầu đã hết hạn và Trình xử lý thông báo sẽ trả về504
.Giá trị của
io.timeout.millis
chỉ định khoảng thời gian tối đa mà điểm cuối mục tiêu phải phản hồi.Trước khi kết nối với một điểm cuối mục tiêu, Trình xử lý thông báo sẽ xác định giá trị nhỏ hơn (
api.timeout
– thời gian đã trôi qua từ khi bắt đầu yêu cầu) vàio.timeout.millis
. Sau đó, phương thức này sẽ đặtio.timeout.millis
thành giá trị đó.- Nếu hết thời gian chờ trong khi ghi yêu cầu HTTP, thì
408, Request Timeout
sẽ được trả về. - Nếu hết thời gian chờ trong khi đọc phản hồi HTTP, thì
504, Gateway Timeout
sẽ được trả về.
- Nếu hết thời gian chờ trong khi ghi yêu cầu HTTP, thì
Giới thiệu về ScriptTarget cho ứng dụng Node.js
Phần tử ScriptTarget được dùng để tích hợp ứng dụng Node.js vào proxy của bạn. Để biết thông tin về cách sử dụng Node.js và ScriptTarget, hãy xem:
Giới thiệu về điểm cuối HostedTarget
Thẻ <HostedTarget/>
trống yêu cầu Edge dùng làm mục tiêu cho một ứng dụng Node.js được triển khai cho môi trường Mục tiêu được lưu trữ. Để biết thông tin chi tiết, hãy xem bài viết Tổng quan về Mục tiêu được lưu trữ.