Configura proxy di inoltro

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:

  1. Sul MP, modifica il seguente file:
    /opt/apigee/customer/application/message-processor.properties

    Se il file message-processor.properties non esiste, crealo.

  2. Modifica il file per impostare le proprietà relative al proxy descritte nella tabella seguente.
  3. Assicurati che il file delle proprietà sia di proprietà dell'utente "apigee":
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Salva le modifiche nel file delle proprietà.
  5. 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 è true, il che significa che puoi utilizzare un proxy di inoltro nel livello proxy API includendo l'XML pertinente nella configurazione del bundle.

Se imposti questo valore su false, non puoi utilizzare un proxy di inoltro.

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 Host. Per impostazione predefinita, l'host e la porta del proxy sono impostati come intestazioni Host. Puoi impostare questa proprietà solo nell'endpoint di destinazione. Ad esempio:

<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.