Les proxys de transfert fournissent un point unique par lequel plusieurs machines envoient des requêtes à un serveur externe. Ils peuvent appliquer des règles de sécurité, enregistrer et analyser les requêtes et effectuer d'autres actions afin que les requêtes respectent vos règles métier. Avec Edge, un proxy de transfert sert généralement d'intermédiaire entre vos proxys d'API et un TargetEndpoint externe (un serveur cible en backend).
Pour utiliser un proxy de transfert HTTP entre Edge et le TargetEndpoint, vous devez configurer les paramètres proxy sortants sur les processeurs de messages (MP). Ces propriétés configurent les processeurs de messages pour acheminer les requêtes cibles d'Edge vers le proxy de transfert HTTP.
Pour configurer un processeur de messages pour le proxy de transfert :
- Sur le processeur de messages, modifiez le fichier suivant :
/opt/apigee/customer/application/message-processor.properties
Si le fichier
message-processor.propertiesn'existe pas, créez-le. - Modifiez le fichier pour définir les propriétés liées au proxy décrites dans le tableau ci-dessous.
- Assurez-vous que le fichier de propriétés appartient à l'utilisateur "apigee" :
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Enregistrez les modifications apportées au fichier de propriétés.
- Redémarrez le processeur de messages, comme illustré dans l'exemple suivant :
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Le tableau suivant décrit les propriétés du fichier message-processor.properties que vous utilisez pour configurer un processeur de messages pour le proxy de transfert vers un serveur backend :
| Propriété | Description |
|---|---|
conf_http_HTTPClient.use.proxy |
Autorise l'utilisation d'un proxy de transfert. La valeur par défaut est Si vous définissez cette valeur sur |
conf_http_HTTPClient.use.tunneling |
Par défaut, Edge utilise le tunneling pour l'ensemble du trafic. Pour désactiver le tunneling par défaut, définissez cette propriété sur "false". |
use.proxy.host.header.with.target.uri |
Définit l'hôte et le port cibles en tant qu'en-tête
<HTTPTargetConnection>
<Properties>
<Property name="use.proxy.host.
header.with.target.uri">true
</Property>
</Properties>
<URL>https://mocktarget.apigee.net/
my-target</URL>
</HTTPTargetConnection> |
conf/http.properties+HTTPClient.proxy.type |
Indique le type de proxy HTTP en tant que HTTP ou HTTPS. Par défaut, "HTTP" est utilisé. |
conf/http.properties+HTTPClient.proxy.host |
Indique le nom d'hôte ou l'adresse IP sur lequel le proxy HTTP est exécuté. |
conf/http.properties+HTTPClient.proxy.port |
Indique le port sur lequel le proxy HTTP est exécuté. Si cette propriété est omise, elle utilise par défaut le port 80 pour HTTP et le port 443 pour HTTPS. |
conf/http.properties+HTTPClient.proxy.user conf/http.properties+HTTPClient.proxy.password |
Si le proxy HTTP nécessite une authentification de base, utilisez ces propriétés pour fournir des informations d'autorisation. |
Exemple :
conf_http_HTTPClient.use.proxy=true conf_http_HTTPClient.use.tunneling=false conf/http.properties+HTTPClient.proxy.type=HTTP conf/http.properties+HTTPClient.proxy.host=my.host.com conf/http.properties+HTTPClient.proxy.port=3128 conf/http.properties+HTTPClient.proxy.user=USERNAME conf/http.properties+HTTPClient.proxy.password=PASSWORD
Si le proxy de transfert est configuré pour le MP, tout le trafic allant des proxys d'API vers des cibles en backend passe par le proxy de transfert HTTP spécifié. Si le trafic destiné à une cible spécifique d'un proxy d'API doit accéder directement à la cible en backend, en contournant le proxy de transfert, définissez la propriété suivante dans le TargetEndpoint pour remplacer le proxy de transfert HTTP :
<Property name="use.proxy">false</Property>
Pour en savoir plus sur la définition des propriétés TargetEndpoint, y compris sur la configuration de la connexion au point de terminaison cible, consultez la documentation de référence sur les propriétés des points de terminaison.
Pour désactiver le proxy de transfert pour toutes les cibles par défaut, définissez la propriété suivante dans votre fichier message-processor.properties :
conf_http_HTTPClient.use.proxy=false
Définissez ensuite use.proxy sur "true" pour tout TargetEndpoint que vous souhaitez faire passer par un proxy de transfert HTTP :
<Property name="use.proxy">true</Property>
Par défaut, Edge utilise le tunneling pour le trafic vers le proxy. Pour désactiver le tunneling par défaut, définissez la propriété suivante dans le fichier message-processor.properties :
conf_http_HTTPClient.use.tunneling=false
Si vous souhaitez désactiver le tunneling pour une cible spécifique, définissez la propriété use.proxy.tunneling dans le TargetEndpoint. Si la cible utilise TLS/SSL, cette propriété est ignorée et le message est toujours envoyé via un tunnel :
<Property name="use.proxy.tunneling">false</Property>
Pour qu'Edge agisse lui-même en tant que proxy de transfert (recevant les requêtes des services de backend et les acheminant vers Internet en dehors de l'entreprise), configurez d'abord un proxy d'API sur Edge. Le service de backend peut ensuite envoyer une requête au proxy d'API, qui peut ensuite se connecter à des services externes.