I proxy di inoltro forniscono un unico punto attraverso il quale più macchine inviano richieste a un server esterno. Possono applicare policy di sicurezza, registrare e analizzare le richieste ed eseguire altre azioni in modo che le richieste rispettino le regole aziendali. Con Edge, un proxy di inoltro in genere funge da intermediario tra i proxy API e un TargetEndpoint esterno (un server di destinazione di backend).
Per utilizzare un proxy di forwarding HTTP tra Edge e TargetEndpoint, devi configurare le impostazioni del proxy in uscita sui processori di messaggi (MP). Queste proprietà configurano i MP per instradare le richieste di destinazione da Edge al proxy di forwarding HTTP.
Per configurare un MP per il proxy di forwarding:
- Sul MP, modifica il seguente file:
/opt/apigee/customer/application/message-processor.properties
Se il file
message-processor.propertiesnon esiste, crealo. - Modifica il file per impostare le proprietà relative al proxy descritte nella tabella seguente.
- Assicurati che il file delle proprietà sia di proprietà dell'utente "apigee":
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Salva le modifiche nel file delle proprietà.
- Riavvia il processore di messaggi, come mostrato nell'esempio seguente:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
La tabella seguente descrive le proprietà nel file message-processor.properties che utilizzi per configurare un MP per il proxy di forwarding a un server di backend:
| Proprietà | Descrizione |
|---|---|
conf_http_HTTPClient.use.proxy |
Consente l'utilizzo del proxy di inoltro. Il valore predefinito è Se imposti questo valore su |
conf_http_HTTPClient.use.tunneling |
Per impostazione predefinita, Edge utilizza il tunneling per tutto il traffico. Per disattivare il tunneling per impostazione predefinita, imposta questa proprietà su "false". |
use.proxy.host.header.with.target.uri |
Imposta l'host e la porta di destinazione come intestazione
<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 |
Specifica il tipo di proxy HTTP come HTTP o HTTPS. Per impostazione predefinita, utilizza "HTTP". |
conf/http.properties+HTTPClient.proxy.host |
Specifica il nome host o l'indirizzo IP in cui è in esecuzione il proxy HTTP. |
conf/http.properties+HTTPClient.proxy.port |
Specifica la porta su cui è in esecuzione il proxy HTTP. Se questa proprietà viene omessa, per impostazione predefinita viene utilizzata la porta 80 per HTTP e la porta 443 per HTTPS. |
conf/http.properties+HTTPClient.proxy.user conf/http.properties+HTTPClient.proxy.password |
Se il proxy HTTP richiede l'autenticazione di base, utilizza queste proprietà per fornire i dettagli di autorizzazione. |
Ad esempio:
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
Se il proxy di inoltro è configurato per il processore di messaggi, tutto il traffico che va dai proxy API ai target di backend passa attraverso il proxy di inoltro HTTP specificato. Se il traffico per un target specifico di un proxy API deve andare direttamente al target di backend, bypassando il proxy di forwarding, imposta la seguente proprietà in TargetEndpoint per eseguire l'override del proxy di forwarding HTTP:
<Property name="use.proxy">false</Property>
Per ulteriori informazioni sull'impostazione delle proprietà TargetEndpoint, incluso come configurare la connessione all'endpoint di destinazione, consulta Riferimento alle proprietà degli endpoint.
Per disattivare il proxy di forwarding per tutte le destinazioni per impostazione predefinita, imposta la seguente proprietà nel file message-processor.properties:
conf_http_HTTPClient.use.proxy=false
Quindi imposta use.proxy su "true" per qualsiasi TargetEndpoint che vuoi far passare attraverso un proxy di forwarding HTTP:
<Property name="use.proxy">true</Property>
Per impostazione predefinita, Edge utilizza il tunneling per il traffico verso il proxy. Per disattivare il tunneling per impostazione predefinita, imposta la seguente proprietà nel file message-processor.properties:
conf_http_HTTPClient.use.tunneling=false
Se vuoi disattivare il tunneling per un target specifico, imposta la proprietà use.proxy.tunneling in TargetEndpoint. Se la destinazione utilizza TLS/SSL, questa proprietà viene ignorata e il messaggio viene sempre inviato tramite un tunnel:
<Property name="use.proxy.tunneling">false</Property>
Affinché Edge stesso agisca come proxy di inoltro, ricevendo le richieste dai servizi di backend e instradandole a internet al di fuori dell'azienda, configura prima un proxy API su Edge. Il servizio di backend può quindi inviare una richiesta al proxy API, che può quindi connettersi ai servizi esterni.