Un proxy server inverso o bilancio di carico è uno strumento tipicamente installato in una rete perimetrale (anche detta zona demilitarizzata [DMZ] o subnet perimetrale) che gestisce le richieste di Internet e le inoltra ai computer nella rete interna. L'inoltro delle richieste per conto del server proxy inverso maschera l'identità dei computer dietro il firewall dell'organizzazione, proteggendo i computer interni dall'attacco diretto degli utenti di Internet. È possibile implementare altre funzioni di sicurezza nel server proxy inverso per proteggere ulteriormente la rete interna dagli utenti esterni.
Se il server proxy inverso o il bilanciamento supporta una funzione di controllo dell'integrità, è possibile utilizzare l'endpoint del controllo dell'integrità di Portal for ArcGIS per determinare se il sito può ricevere richieste. Questo è utile per determinare in maniera rapida se esiste un problema software o hardware nel sito. Per ulteriori informazioni, consultare Controllo integrità.
Attenzione:
La configurazione spiegata in questo argomento deve essere eseguita prima di federare qualunque sito ArcGIS Server al proprio portale. La funzione che consente di aggiungere un alias DNS o un proxy inverso dopo aver federato un sito ArcGIS Server con il portale non è supportata. Per modificare il nome host nell'URL dell'organizzazione, contattare Esri Consulting Services o un altro partner di consulenza fidato per maggiori informazioni.
L'annullamento della federazione di un sito ArcGIS Server presenta svariate conseguenze significative ed è un'operazione che non può essere annullata facilmente. Per maggiori informazioni, consultare Amministrare un server federato.
Tipologie di bilanciamento di carico
Spesso ci si riferisce ai proxy inversi come a bilanciatori di carico, ma tipicamente offrono più funzionalità della sola distribuzione di messaggi in arrivo verso destinazioni di back.end. Molte implementazioni di server di proxy inverso riescono a operare in ciascuna delle capacità descritte in seguito, a seconda della configurazione.
Le azioni di bilanciamento di carico spesso si distinguono in base al layer del modello Open Systems Interconnection (OSI) nel quale operano. Durante le operazioni di integrazione di una tecnologia di bilanciamento di carico esistente, è importante identificare la tipologia che si sta implementando, in quanto influisce sull'architettura generale della distribuzione.
I sistemi di bilanciamento di carico di livello 3/4 vengono talvolta indicati bilanciatori a livello di rete o di pacchetto. Questi sistemi di bilanciamento di norma non ispezionano il traffico in entrata, ma indirizzano i pacchetti TCP/UDP in entrata verso destinazioni di back-end. Nuove implementazioni permettono la terminazione SSL sul sistema di bilanciamento di carico, tuttavia la sessione client SSL viene stabilita tipicamente con i server back-end di destinazione.
I sistemi di bilanciamento di carico di livello 7 vengono talvolta identificati come sistemi di bilanciamento per applicazioni o compatibili con applicazioni. Questi sistemi di bilanciamento ispezionano i messaggi in entrata e sono in grado di decidere l'indirizzamento basandosi su alcuni fattori, nonché di modificare i contenuti di tali messaggi prima di indirizzarli ai back-end di destinazione. I bilanciatori di livello 7 che utilizzano l'HTTPS termineranno la comunicazione SSL con il client e ri-cripteranno il traffico prima di indirizzare le richieste ai back-end HTTPS di destinazione.
Preparare un server proxy inverso o bilanciatore di carico
Prima di aggiungerePortal for ArcGIS al server proxy inverso dell'organizzazione, è necessario completare quanto segue:
- Configurare HTTPS (HTTP e HTTPS o solo HTTPS) sul server proxy inverso. Per impostazione predefinita, Portal for ArcGISutilizza HTTPS per la comunicazione. Consultare la documentazione del prodotto per il server proxy per scoprire come configurare HTTPS.
Nota:
Portal for ArcGIS non supporta lo scarico SSL tramite un server proxy inverso/bilanciatore di carico. Pertanto, se la configurazione usa un server proxy inverso, dovrà indirizzare il traffico a ArcGIS Web Adaptor o direttamente a Portal for ArcGIS via HTTPS.
Nota:
Verificare che il nome contestuale del servizio proxy inverso abbia una profondità di un livello di URL. Ad esempio, è possibile avere l'URL del proxy inverso come per https://proxy.domain.com/enterprise, ma non è possibile avere l'URL del proxy inverso come per https://proxy.domain.com/myorg/enterprise.
Verificare che il server proxy supporti la codifica gzipe sia configurato per consentire l'intestazioneAccept-Encoding. Questa intestazione supporta la compressione delle risposte HTTP 1.1 con codifica gzip. Ad esempio, se l'intestazione è consentita, per una richiesta di caricamento del Map Viewer Classic, al browser verrà inviata una risposta compressa di circa 1,4 MB. Se l'intestazione non è consentita o viene ignorata, la richiesta restituirà al browser una risposta non compressa di circa 6,8 MB. Se la rete è lenta e le risposte non sono compresse, il caricamento del Map Viewer Classic potrebbe richiedere molto tempo. Nella configurazione del server proxy inverso, Esri consiglia di consentire questa intestazione.
Bilanciatore di carico di livello 3/4
Il bilanciatore di carico deve ascoltare la porta HTTPS predefinita e indirizzare il traffico a ArcGIS Web Adaptor o direttamente ai computer Portal for ArcGIS tramite la porta 7443. Quando si terminano le sessioni client SSL nel server web interno Portal for ArcGIS, assicurarsi che il certificato SSL presentato dal web server sia valido per l'alias DNS e l'FQDN dei computer nel sito per evitare problemi di validità del certificato. Ciò può essere ottenuto solitamente usando nomi alternativi dell'oggetto per il certificato SSL.
Nota:
Quando ArcGIS Web Adaptor non è utilizzato, deve essere usato il contesto predefinito (/arcgis) per il sito. Durante l'integrazione di più siti di Portal for ArcGIS e ArcGIS Server sullo stesso bilanciamento del carico di livello 3/4, deve essere utilizzato un record DNS univoco per ogni sito e un Server Name Indication (SNI) univoco per indirizzare il traffico alle destinazioni di back-end appropriate.
Bilanciatore di carico di livello 7
Nella configurazione del bilanciatore di carico deve essere impostata un'intestazione X-Forwarded-Host nel nome host dell'alias DNS del sito. Portal for ArcGIS richiede questa proprietà impostata nell'intestazione inviata dal proxy inverso e restituirà le richieste corrispondenti all’URL del server proxy inverso. Se non si utilizza ArcGIS Web Adaptor con il portale, confermare che l'intestazione Host sia impostato in modo che corrisponda al nome host del computer in cui è installato Portal for ArcGIS.
Suggerimento:
È possibile utilizzare l'endpoint dei computer nella directory di Portal Administrator per visualizzare il nome dell'host del computer che esegue Portal for ArcGIS.
Ad esempio, una richiesta alla directory di Portal for ArcGIS (https://dnsalias.domain.com/arcgis/sharing/rest) verrà restituita al client con lo stesso URL. Se la proprietà non è impostata, Portal for ArcGIS potrebbe restituire l'URL del computer interno cui la richiesta era diretta (ad esempio https://portal.domain.com/arcgis/sharing/rest invece di https://dnsalias.domain.com/arcgis/sharing/rest). Questo può diventare un problema poiché i client non potranno accedere a tale URL (anomalia comunemente nota come errore 404 del browser) Inoltre, ciò consente l'accesso del client ad alcune informazioni sul computer interno.
Oltre all'intestazione X-Forwarded-Host, il bilanciatore di carico deve poter indirizzare i reindirizzamenti (codici HTTP 301 o 302). Tutte le intestazioni Location devono essere riscritte sul bilanciatore di carico per assicurarsi che il nome del dominio completamente qualificato (FQDN) e il contesto della risposta corrispondano al valore del portale WebContextURL.
Aggiungi un portale
Le sezioni seguenti descrivono come aggiungere Portal for ArcGIS al proxy server inverso della propria organizzazione.
Bilanciamento layer 3/4: aggiungere i computer ArcGIS Web Adaptor o Portal for ArcGIS alla configurazione del bilanciamento.
Dal momento che l'indirizzamento del traffico alle destinazioni di back-end avverranno tramite TCP, i computer di ogni sito devono essere aggiunti alla configurazione del bilanciatore di carico. Se viene utilizzato ArcGIS Web Adaptor, le destinazioni di back-end devono puntare alla porta dei server web (di solito 443 o 8443) che ospitano il Web Adaptor. Quando il traffico è indirizzato direttamente verso Portal for ArcGIS, le destinazioni di back-end devono puntare alla porta 7443 su ogni computer del sito.
Bilanciatore di carico di livello 7: aggiungere i computer ArcGIS Web Adaptor o Portal for ArcGIS alle direttive del server proxy.
Dopo aver configuratoArcGIS Web Adaptor con Portal for ArcGIS,ArcGIS Web Adaptor può essere usato con il reverse proxy server dell'organizzazione aggiungendo i componenti direttamente alle direttive del server proxy. Ad esempio, se si utilizza Apache come proxy inverso, è necessario aggiungere ArcGIS Web Adaptor alle direttive ProxyPass nel file di configurazione del server Web Apache httpd.conf:
ProxyPass /webadaptorname https://webadaptorhost.domain.com/webadaptorname
ProxyPassReverse /webadaptorname https://webadaptorhost.domain.com/webadaptorname
Le direttive ProxyPass devono corrispondere al nome designato perArcGIS Web Adaptor (/webadaptorname nell'esempio riportato sopra). Quando non si sta utilizzando ArcGIS Web Adaptor davanti a Portal for ArcGIS, aggiungere le seguenti direttive dove /context è il percorso URL di livello superiore scelto:
ProxyPass /context https://portal.domain.com:7443/arcgis
ProxyPassReverse /context https://portal.domain.com:7443/arcgis
Configurare un portale per utilizzare un proxy inverso o un bilanciatore di carico
Le sezioni seguenti descrivono come configurare il proprio portale per utilizzare l'URL del server proxy inverso e i processi amministrativi che devono essere rieseguiti dopo la configurazione dell'URL.
Impostare la proprietà WebContextURL
La proprietà del portaleWebContextURL può costruire gli URL corretti per tutte le risorse che invia all'utente finale. Per modificare WebContextURL, eseguire le operazioni seguenti:
- Aprire un browser Web ed effettuare l'accesso alla directory di Portal Administrator come membro del ruolo amministratore predefinito dell'organizzazione. Il formato dell'URL è https://portal.domain.com:7443/arcgis/portaladmin.
- Fare clic su Sistema > Proprietà > Aggiorna Proprietà.
- Nella finestra Update System Properties inserire il seguente JSON, che sostituisce l'URL del server proxy inverso o dell'alias DNS visualizzato dagli utenti al di fuori del firewall dell'organizzazione.
{ "WebContextURL": "https://dnsalias.domain.com/portal" }
Nota:
Portal for ArcGIS supporta solo un singolo URL organizzazione.
Nota:
Non è possibile utilizzare una porta non standard (cioè una porta diversa dal 443) mentre si imposta la proprietà di WebContextURL.
- Fare clic su Aggiorna Proprietà.
Ripetere attività amministrative
Dopo aver configurato il server proxy inverso con il portale, l'accesso al portale verrà ora effettuato tramite l'URL del proxy inverso anziché quello di ArcGIS Web Adaptor. Qualsiasi elemento a cui si accede nel portale o nella directory di Portal Administrator restituirà l'URL del server proxy inverso.
Rieseguire le seguenti attività amministrative utilizzando l'URL del server proxy inverso:
Se in precedenza al portale sono stati aggiunti servizi protetti come elementi, sarà necessario eliminare gli elementi originali ed aggiungerli nuovamente. Gli elementi originali utilizzano infatti l'URL di ArcGIS Web Adaptoranziché quello del server proxy inverso. Per le istruzioni, consultare Connettersi a servizi protetti.
Dopo aver configurato il server proxy inverso con il portale, potrebbe essere necessario modificarne le impostazioni. Ad esempio, se le operazioni o le richieste all'interno dell'installazione riportano un errore che indica che la connessione è scaduta, potrebbe essere che il valore di timeout del server proxy inverso sia troppo corto. Per correggere questo errore, considerare di aumentare il valore di timeout per consentire il completamento delle richieste lunghe, come ad esempio la federazione di un server.