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ể đặt trong TargetEndpoint và ProxyEndpoint để kiểm soát hành vi nhắn tin và kết nối. Để xem toàn bộ phạm vi của TargetEndpoint và cấu hình 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 HTTP thuộc tính truyền tải. Bạn có thể sử dụng các thuộc tính này để thiết lập cấu hình cấp phương tiện giao thông.
Các thuộc tính được đặt trên các phần tử TargetEndpoint HTTPTargetConnection như hiển thị dưới đây:
<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>
Thuộc tính truyền tải TargetEndpoint Thông số kỹ thuật
Tên thuộc tính | Giá trị mặc định | Mô tả |
---|---|---|
keepalive.timeout.millis |
60000 |
Thời gian chờ ở trạng thái không hoạt động của kết nối đối với kết nối đích 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ẽ đã đóng. |
connect.timeout.millis |
|
Hết thời gian chờ kết nối mục tiêu. Edge trả về mã trạng thái HTTP |
io.timeout.millis |
55000 |
Nếu không có dữ liệu để đọc trong số mili giây được chỉ định hoặc nếu ổ cắm chưa sẵn sàng ghi dữ liệu trong số mili giây được 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 để giao tiếp với Trình xử lý thư. Xem Định cấu hình thời gian chờ của Bộ định tuyến để khác. Xem phần Cài đặt io.timeout.millis và api.timeout cho Edge để tìm hiểu thêm. |
supports.http10 |
true |
Nếu đây là true và ứng dụng gửi một yêu cầu 1.0, thì mục tiêu cũng được gửi một giá trị 1.0
của bạn. 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à máy khách gửi một yêu cầu 1.1, thì mục tiêu cũng được gửi một yêu cầu 1.1
nếu không thì yêu cầu 1.0 sẽ được gửi đến nhắm mục tiêu. |
use.proxy |
true |
Nếu bạn đặt chính sách này thành true , và cấu hình proxy được chỉ định trong
http.properties (chỉ triển khai tại chỗ), sau đó nhắm mục tiêu các kết nối
được thiết lập để sử dụng proxy đã chỉ định. |
use.proxy.tunneling |
true |
Nếu bạn đặt chính sách này thành true và cấu hình proxy được chỉ định trong
http.properties (chỉ triển khai tại chỗ), sau đó nhắm mục tiêu
các kết nối được thiết lập để sử dụng đường hầm đã chỉ định. Nếu đích sử dụng TLS/SSL, thì mã này
sẽ bị bỏ qua và thông báo sẽ luôn được gửi qua một đường hầm. |
enable.method.override |
false |
Đố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 đến dịch vụ đích. 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 đ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 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 mã HTTP <Property name="Success.codes">400</Property> Bằng cách đặt mã HTTP |
compression.algorithm |
Không áp dụng |
Theo mặc định, Apigee Edge 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
làm yêu cầu của máy khách. Nếu yêu cầu được nhận từ máy khách bằng cách sử dụng, ví dụ: gzip
nén, sau đó Apigee Edge sẽ chuyển tiếp yêu cầu nhắm mục tiêu bằng hàm nén gzip. Nếu
thông tin phản hồi nhận được từ mục tiêu sử dụng tính năng khử tiếng ồn, sau đó Apigee Edge chuyển tiếp phản hồi đến
khách hàng sử dụng tính năng khử. Sau đây là các giá trị được hỗ trợ:
Xem thêm: Apigee có hỗ trợ tính năng nén/giải 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ả tiêu đề HTTP trên các thư gửi đi. Khi đặt
vào true , tất cả tiêu đề HTTP có trong yêu cầu đến sẽ được đặt trên
yêu cầu ra ngoà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 đặt trên hộp thư đi
đến dịch vụ đích. Ví dụ: để chuyển qua 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 được 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 request.retain.headers.enabled
sẽ được đặt thành false , bất kỳ tiêu đề nào được chỉ định trong
Thuộc tính request.retain.headers vẫn được đặt trong thư gửi đi. |
response.retain.headers. |
true |
Theo mặc định, Apigee Edge luôn giữ lại tất cả tiêu đề HTTP trên các thư gửi đi. Khi đặt
vào true , tất cả tiêu đề HTTP có trên phản hồi đến từ mục tiêu
được đặt trên phản hồi đi trước khi được truyền đến ProxyEndpoint. |
response.retain.headers |
Không áp dụng | Xác định tiêu đề HTTP cụ thể từ phản hồi sẽ được đặt trên hộp thư đi
trước khi được truyền đến ProxyEndpoint. Ví dụ: để chuyển qua
Tiêu đề Expires , đặ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, đối với
ví dụ: Expires,Set-Cookie . Thuộc tính này ghi đè
response.retain.headers.enabled . Nếu
response.retain.headers.enabled được đặt thành false , mọi tiêu đề
đã chỉ định trong thuộc tính response.retain.headers vẫn được đặt trên
thư đi. |
retain.queryparams. |
true |
Theo mặc định, Apigee Edge luôn giữ lại tất cả tham số truy vấn đối với các yêu cầu gửi đi. Thời gian
được đặt thành true , tất cả tham số truy vấn có trong yêu cầu đến sẽ được đặt vào
yêu cầu gửi đi đến dịch vụ đích. |
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 gửi đi. Ví dụ: để
bao gồm tham số truy vấn apikey từ thông báo yêu cầu, đặt
retain.queryparams thành apikey . Nhiều tham số truy vấn
được chỉ định dưới dạng danh sách được phân tách bằng dấu phẩy, ví dụ: apikey,environment . Chiến dịch này
thuộc tính sẽ ghi đè retain.queryparams.enabled . |
Thuộc tính truyền tải ProxyEndpoint
Các phần tử HTTPTargetConnection của ProxyEndpoint xác định một tập hợp các thuộc tính truyền tải HTTP. Các có thể được sử dụng để thiết lập cấu hình cấp truyền tải.
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 | 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 vào 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 tải trọng lớn hơn
dung lượng bộ nhớ đệm (10 MB), bạn có thể đặt
cho true . Khi true , các tải trọng yêu cầu HTTP sẽ không được đọc vào vùng đệm; chúng
truyền y nguyên đến luồng yêu cầu TargetEndpoint. Trong trường hợp này, bất kỳ chính sách nào hoạt động
trên tải trọng trong luồng yêu cầu ProxyEndpoint sẽ bị bỏ qua. Xem thêm bài viết Yêu cầu và phản hồi truyền trực tuyến. |
response.streaming. |
false |
Theo mặc định (false ), tải trọng phản hồi HTTP được đọc vào vùng đệm và các chính sách
có thể hoạt động trên tải trọng
như dự kiến. Trong trường hợp tải trọng lớn hơn
dung lượng bộ nhớ đệm (10 MB), bạn có thể đặt
cho true . Khi true , tải trọng phản hồi HTTP sẽ không được đọc vào vùng đệm; chúng
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
Luồng phản hồi ProxyEndpoint sẽ bị bỏ qua. Xem thêm bài viết Yêu cầu và phản hồi truyền trực tuyến. |
compression.algorithm |
Không áp dụng |
Theo mặc định, Apigee Edge sẽ áp dụng kiểu nén đã thiết lập cho mọi tin nhắn nhận được. Cho ví dụ: khách hàng gửi yêu cầu sử dụng nén gzip, Apigee Edge chuyển tiếp yêu cầu nhắm mục tiêu bằng phương thức nén gzip. Bạn có thể định cấu hình nén các thuật toán này sẽ đượ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/giải 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 từng proxy API Bạn có thể định cấu hình proxy API, ngay cả những proxy có
phát trực tuyến,
hết giờ sau một khoảng thời gian nhất định có 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 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. Xem phần Cài đặt io.timeout.millis và api.timeout cho Edge để tìm hiểu thêm. |
Đặt io.timeout.millis và api.timeout cho Edge
Trên Edge, hoạt động của io.timeout.millis
và api.timeout
đều có liên quan với nhau.
Trên mỗi yêu cầu proxy API:
- Bộ định tuyến gửi giá trị thời gian chờ cho Trình 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 đặt 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ý thư sẽ đặt
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 bạn đặt
api.timeout
ở cấp proxy, hãy đặt trên Trình xử lý thông báo thành nhỏ hơn thời gian chờ của Bộ định tuyến hoặc giá trị củaapi.timeout
.
- Nếu
Giá trị của
api.timeout
chỉ định khoảng thời gian tối đa mà một proxy API có để thực thi từ yêu cầu API đến phản hồi.Sau khi thực thi mỗi chính sách trong proxy API, hoặc trước khi Bộ xử lý thư gửi yêu cầu đến điểm cuối đích, Trình xử lý thông báo sẽ tính (
api.timeout
- thời gian đã trôi qua kể từ thời điểm bắt đầu yêu cầu). Nếu giá trị này nhỏ hơn 0 thì 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ư 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 tới điểm cuối mục tiêu, Bộ xử lý thông báo sẽ xác định ít hơn (
api.timeout
– thời gian đã trôi qua kể từ thời điểm bắt đầu yêu cầu) vàio.timeout.millis
. Sau đó, hàm này thiết lậpio.timeout.millis
thành giá trị đó.- Nếu hết thời gian chờ trong khi ghi yêu cầu HTTP,
408, Request Timeout
bị trả về. - Nếu hết thời gian chờ trong khi đọc phản hồi HTTP,
504, Gateway Timeout
bị trả về.
- Nếu hết thời gian chờ trong khi ghi yêu cầu HTTP,
Giới thiệu về ScriptTarget cho các ứng dụng Node.js
Phần tử ScriptTarget dùng để tích hợp ứng dụng Node.js vào proxy của bạn. Cho 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 sử dụng làm mục tiêu cho một 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
Tổng quan về Mục tiêu được lưu trữ.