Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
W tym temacie opisujemy właściwości transportu, które można ustawić w konfiguracjach TargetEndpoint i ProxyEndpoint do sterowania wiadomościami i zachowaniem połączenia. Więcej informacji o konfiguracji TargetEndpoint i ProxyEndpoint znajdziesz w dokumentacji dotyczącej konfiguracji serwera proxy interfejsu API.
Właściwości transportu docelowego punktu końcowego
Element HTTPTargetConnection w konfiguracjach TargetEndpoint określa zestaw właściwości transportu HTTP. Za pomocą tych właściwości możesz określać konfiguracje na poziomie transportu.
Właściwości ustawia się w elementach TargetEndpoint HTTPTargetConnection w ten sposób:
<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>
Specyfikacja właściwości transportu docelowego punktu końcowego
Nazwa właściwości | Wartość domyślna | Opis |
---|---|---|
keepalive.timeout.millis |
60000 |
Limit czasu bezczynności połączenia dla połączenia docelowego w puli połączeń. Jeśli połączenie w puli jest nieaktywne po przekroczeniu określonego limitu, połączenie jest zamknięte. |
connect.timeout.millis |
|
Docelowy czas oczekiwania na połączenie. Po przekroczeniu limitu czasu połączenia Edge zwraca kod stanu HTTP |
io.timeout.millis |
55000 |
Jeśli nie ma danych do odczytania przez określoną liczbę milisekund lub gniazdo nie jest gotowe do zapisu danych przez określoną liczbę milisekund, transakcja jest traktowana jako limit czasu.
Ta wartość powinna zawsze być mniejsza od wartości właściwości proxy_read_timeout hosta wirtualnego. Ta wartość powinna być mniejsza niż limit czasu używany przez router do komunikacji z procesorem wiadomości. Więcej informacji znajdziesz w artykule Konfigurowanie limitu czasu routera. Więcej informacji znajdziesz w artykule Konfigurowanie ustawień io.timeout.millis i api.timeout dla Edge. |
supports.http10 |
true |
Jeśli to true , a klient wyśle żądanie 1.0, do miejsca docelowego zostanie również wysłane żądanie 1.0. W przeciwnym razie do celu wysyłane jest żądanie 1.1. |
supports.http11 |
true |
Jeśli to true , a klient wyśle żądanie 1.1, do celu wysyłane jest żądanie 1.1. W przeciwnym razie do celu wysyłane jest żądanie 1.0. |
use.proxy |
true |
Jeśli ustawiono wartość true , a konfiguracje serwera proxy są określone w ustawieniu http.properties (tylko w przypadku wdrożeń lokalnych), połączenia docelowe są skonfigurowane tak, aby używać określonego serwera proxy. |
use.proxy.tunneling |
true |
Jeśli ustawiona jest wartość true , a konfiguracje serwera proxy są określone w http.properties (tylko w przypadku wdrożeń lokalnych), połączenia docelowe są ustawione tak, aby korzystały z określonego tunelu. Jeśli środowisko docelowe używa TLS/SSL, ta właściwość jest ignorowana, a wiadomość jest zawsze wysyłana przez tunel. |
enable.method.override |
false |
W przypadku określonej metody HTTP ustawia nagłówek X-HTTP-Method-Override w żądaniu wychodzącym dla usługi docelowej. Przykład: <Property
name="GET.override.method">POST</Property> |
*.override.method |
Nie dotyczy | W przypadku określonej metody HTTP ustawia nagłówek X-HTTP-Method-Override w żądaniu wychodzącym. Przykład: <Property
name="GET.override.method">POST</Property> |
request.streaming.enabled |
false |
Domyślnie ( |
response.streaming.enabled |
false |
Domyślnie ( |
success.codes |
Nie dotyczy |
Apigee Edge domyślnie traktuje kod HTTP Ustawienie tej właściwości zastępuje wartości domyślne. Jeśli więc chcesz dodać kod HTTP <Property name="success.codes">1XX,2XX,3XX,400</Property> Jeśli chcesz, aby jako kod powodzenia był traktowany tylko kod HTTP <Property name="success.codes">400</Property> Jeśli ustawisz kod HTTP |
compression.algorithm |
Nie dotyczy |
Domyślnie Apigee Edge przekazuje żądania do środowiska docelowego przy użyciu tego samego typu kompresji co żądanie klienta. Jeśli żądanie zostało odebrane z klienta przy użyciu np. kompresji gzip, Apigee Edge przekazuje żądanie do celu z użyciem kompresji gzip. Jeśli w odpowiedzi otrzymanej z miejsca docelowego zastosowano deflate, Apigee Edge przekazuje odpowiedź do klienta za pomocą deflate. Obsługiwane wartości:
Zobacz też: Czy Apigee obsługuje kompresję/dekompresję za pomocą programu GZIP/deflate? |
request.retain.headers. |
true |
Domyślnie Apigee Edge zawsze zachowuje wszystkie nagłówki HTTP w wiadomościach wychodzących. Gdy zasada ma wartość true , wszystkie nagłówki HTTP znajdujące się w żądaniu przychodzącym są ustawiane w żądaniu wychodzącym. |
request.retain.headers |
Nie dotyczy | Definiuje określone nagłówki HTTP z żądania, które należy ustawić w żądaniu wychodzącym do usługi docelowej. Aby na przykład przekazywać nagłówek User-Agent , ustaw wartość request.retain.headers na User-Agent .
Kilka nagłówków HTTP można podać w postaci listy rozdzielanej przecinkami, np. User-Agent,Referer,Accept-Language . Ta właściwość zastępuje właściwość request.retain.headers.enabled . Jeśli request.retain.headers.enabled ma wartość false , wszystkie nagłówki określone we właściwości request.retain.headers będą nadal ustawione w wiadomości wychodzącej. |
response.retain.headers. |
true |
Domyślnie Apigee Edge zawsze zachowuje wszystkie nagłówki HTTP w wiadomościach wychodzących. Gdy ustawiona jest wartość true , wszystkie nagłówki HTTP znajdujące się w odpowiedzi przychodzącej z usługi docelowej są ustawiane w odpowiedzi wychodzącej przed jej przekazaniem do punktu ProxyEndpoint. |
response.retain.headers |
Nie dotyczy | Definiuje określone nagłówki HTTP odpowiedzi, które należy ustawić w odpowiedzi wychodzącej, zanim zostanie ona przekazana do punktu końcowego serwera proxy. Aby na przykład przekazywać nagłówek Expires , ustaw wartość response.retain.headers na Expires . Kilka nagłówków HTTP można podać w postaci listy rozdzielanej przecinkami, np. Expires,Set-Cookie . Ta właściwość zastępuje właściwość response.retain.headers.enabled . Jeśli response.retain.headers.enabled ma wartość false , wszystkie nagłówki określone we właściwości response.retain.headers będą nadal ustawione w wiadomości wychodzącej. |
retain.queryparams. |
true |
Domyślnie Apigee Edge zawsze zachowuje wszystkie parametry zapytania w żądaniach wychodzących. Gdy jest ustawiona na true , wszystkie parametry zapytania obecne w żądaniu przychodzącym są ustawiane w żądaniu wychodzącym do usługi docelowej. |
retain.queryparams |
Nie dotyczy | Definiuje parametry zapytania, które należy ustawić w żądaniu wychodzącym. Aby na przykład uwzględnić parametr zapytania apikey z wiadomości żądania, ustaw retain.queryparams na apikey . Kilka parametrów zapytania można podać w postaci listy rozdzielanej przecinkami, np. apikey,environment . Ta właściwość zastępuje właściwość retain.queryparams.enabled . |
Właściwości transportu ProxyEndpoint
Elementy HTTPTargetConnection ProxyEndpoint definiują zestaw właściwości transportu HTTP. Tych właściwości można używać do ustawiania konfiguracji na poziomie transportu.
Właściwości elementu ProxyEndpoint HTTPProxyConnection w taki sposób:
<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>
Więcej informacji o hostach wirtualnych znajdziesz w artykule Informacje o hostach wirtualnych.
Specyfikacja właściwości transportu ProxyEndpoint
Nazwa właściwości | Wartość domyślna | Opis |
---|---|---|
X-Forwarded-For |
false |
Gdy jest ustawiona na true , adres IP hosta wirtualnego jest dodawany do żądania wychodzącego jako wartość nagłówka HTTP X-Forwarded-For . |
request.streaming. |
false |
Domyślnie (false ) ładunki żądań HTTP są odczytywane do bufora, a zasady, które mogą działać na ładunku, działają zgodnie z oczekiwaniami. W przypadku, gdy ładunki są większe niż rozmiar bufora (10 MB), możesz ustawić ten atrybut na true . Gdy true , ładunki żądania HTTP nie są odczytywane do bufora; są przesyłane strumieniowo w stanie niezmienionym do przepływu żądania TargetEndpoint. W takim przypadku wszystkie zasady, które działają na ładunku w przepływie żądania ProxyEndpoint, są pomijane. Zapoznaj się też z sekcją Przesyłanie żądań i odpowiedzi. |
response.streaming. |
false |
Domyślnie (false ) ładunki odpowiedzi HTTP są odczytywane do bufora, a zasady, które mogą działać na ładunku, działają zgodnie z oczekiwaniami. W przypadku, gdy ładunki są większe niż rozmiar bufora (10 MB), możesz ustawić ten atrybut na true . Gdy true , ładunki odpowiedzi HTTP nie są odczytywane do bufora; są przesyłane do klienta w niezmienionej postaci. W tym przypadku wszystkie zasady działające na ładunku w przepływie odpowiedzi ProxyEndpoint są pomijane. Zapoznaj się też z sekcją Przesyłanie żądań i odpowiedzi. |
compression.algorithm |
Nie dotyczy |
Domyślnie Apigee Edge rozpoznaje typ kompresji ustawiony dla każdej otrzymanej wiadomości. Jeśli na przykład klient przesyła żądanie korzystające z kompresji gzip, Apigee Edge przekazuje żądanie do celu z użyciem kompresji gzip. Możesz skonfigurować algorytmy kompresji, aby były stosowane bezpośrednio, ustawiając tę właściwość w punkcie końcowym TargetEndpoint lub ProxyEndpoint. Obsługiwane wartości to:
Zobacz też: Czy Apigee obsługuje kompresję/dekompresję za pomocą programu GZIP/deflate? |
api.timeout |
Nie dotyczy |
Konfigurowanie limitu czasu dla poszczególnych serwerów proxy interfejsu API Możesz skonfigurować serwery proxy interfejsu API, nawet te z włączonym strumieniem strumieniowym, aby po określonym czasie oczekiwania miały stan
Nie możesz ustawić tej właściwości za pomocą zmiennej. Klienci, którzy nie mogą zmieniać limitów czasu oczekiwania na Edge, mogą też skonfigurować limit czasu serwera proxy interfejsu API, o ile będzie on krótszy niż standardowy czas oczekiwania procesora wiadomości brzegowych wynoszący 57 sekund. Więcej informacji znajdziesz w artykule Konfigurowanie ustawień io.timeout.millis i api.timeout dla Edge. |
Konfigurowanie ustawień io.timeout.millis i api.timeout dla Edge
W przeglądarce Edge operacje io.timeout.millis
i api.timeout
są powiązane.
Przy każdym żądaniu wysyłanym do serwera proxy interfejsu API:
- Router wysyła wartość czasu oczekiwania do procesora wiadomości. Wartość limitu czasu routera to albo wartość
proxy_read_timeout
ustawiona przez hosta wirtualnego, który obsługuje żądanie, albo domyślny limit czasu wynoszący 57 sekund. - Następnie procesor wiadomości ustawia
api.timeout
:- Jeśli zasada
api.timeout
nie jest ustawiona na poziomie serwera proxy, ustaw limit czasu routera. - Jeśli
api.timeout
jest ustawiony na poziomie serwera proxy, ustaw go w procesorze wiadomości na mniejszą wartość limitu czasu oczekiwania routera lub wartośćapi.timeout
.
- Jeśli zasada
Wartość
api.timeout
określa maksymalny czas wykonania serwera proxy interfejsu API od żądania do interfejsu API do odpowiedzi.Po wykonaniu każdej zasady w serwerze proxy interfejsu API lub przed wysłaniem żądania do docelowego punktu końcowego przez podmiot przetwarzający wiadomości (
api.timeout
– czas, jaki upłynął od rozpoczęcia żądania). Jeśli wartość jest mniejsza niż 0, oznacza to, że upłynął maksymalny czas obsługi żądania, a procesor wiadomości zwraca wartość504
.Wartość
io.timeout.millis
określa maksymalny czas, jaki musi na odpowiedź docelowy punkt końcowy.Przed nawiązaniem połączenia z docelowym punktem końcowym podmiot przetwarzający wiadomości określa mniejszą z tych wartości (
api.timeout
– czas, jaki upłynął od rozpoczęcia żądania) orazio.timeout.millis
. Następnie ustawia tę wartość dla parametruio.timeout.millis
.- Jeśli podczas zapisywania żądania HTTP limit czasu zostanie przekroczony, zwracany jest kod
408, Request Timeout
. - Jeśli podczas odczytu odpowiedzi HTTP minie limit czasu, zwracana jest wartość
504, Gateway Timeout
.
- Jeśli podczas zapisywania żądania HTTP limit czasu zostanie przekroczony, zwracany jest kod
Informacje o obiekcie ScriptTarget dla aplikacji Node.js
Element ScriptTarget służy do integrowania aplikacji Node.js z serwerem proxy. Informacje o korzystaniu z Node.js i ScriptTarget znajdziesz w tych artykułach:
- Określ środowisko docelowe Node.js za pomocą elementu ScriptTarget
- Zaawansowana konfiguracja ScriptTarget
Informacje o punktach końcowych HostedTarget
Pusty tag <HostedTarget/>
sprawia, że przeglądarka Edge ma używać jako środowiska docelowego aplikacji Node.js wdrożonej w środowisku hostowanych obiektów docelowych. Więcej informacji znajdziesz w artykule Omówienie hostowanych celów.