Panoramica dell’ARR di IIS
ARR è un complemento (plugin) che si installa su IIS e che permette di trasformare il Web server di Windows in Reverse Proxy.
ARR è un componente aggiuntivo gratuito che si installa su un servizio IIS e consente:
- Esegui il routing HTTP(S).
- Distribuzione del carico (bilanciamento del carico)
- Scarica SSL.
- CDN (cache)
Esempio di distribuzione con IIS/ARR:

Prerequisiti
Per impostare ARR avrai bisogno di:
- Servizi Web da pubblicare (IIS/Apache/nginx…)
- Un server con IIS installato.
Installazione di ARR
Dalla console IIS, avviare il programma di installazione della piattaforma Web.
Nella casella di ricerca inserisci ARR 1 e premi Invio sulla tastiera.

Selezionare Application Request Routing 3.0 Beta 1 e premere il pulsante Aggiungi 2.

Fare clic sul pulsante Installa 1.

Clicca su Accetto 1.

Attendi durante l’installazione.

Sono installati i 3 componenti necessari per l’installazione e il funzionamento di ARR, fare clic su Fine 1 per chiudere la procedura guidata di installazione.

Riavviare la console IIS, i componenti di amministrazione ARR 1 dovrebbero essere disponibili.

Configurazione: instradamento semplice
In questa parte imposteremo un semplice routing del protocollo HTTP. Le richieste HTTP arriveranno sul server ARR e questo le trasferirà al server WEB che ospita i siti.
Il primo passaggio consiste nel creare una server farm che corrisponda a uno o più server Web che ospitano l’applicazione e quindi modificare la regola di riscrittura per l’instradamento alla farm corretta in base all’URL.
Selezionare Server Farm 1, fare clic con il tasto destro su di esso e fare clic su Crea server farm … 2 o scorrere il menu Azioni.

Inserire il nome della Server Farm 1 (per convenzione il nome DNS di accesso), spuntare la casella Online 2 se non è fatto e cliccare su Avanti 3.

Immettere il nome o l’IP del sito che ospita i server 1 e fare clic su Aggiungi 2.

Una volta aggiunti i server 1 fare clic sul pulsante Fine 2.

Fare clic su Sì 1 per confermare la creazione automatica della regola di riscrittura (routing).

Le regole automatiche si basano sul nome della farm per eseguire la riscrittura. Vedremo più avanti come modificare le regole per l’affidabilità.
La prima “server farm” 1 viene creata e disponibile nell’interfaccia di amministrazione di IIS.

Espandere la cartella Server Farm 1 e selezionare la farm appena creata 2. Nell’area centrale 3 sono disponibili le azioni.

Ora daremo un’occhiata più da vicino alle regole di riscrittura.
Fare clic su Regole di percorso 1.

Nel menu Azioni fare clic su Riscrivi URL … 1.

Vediamo che la regola di inoltro crea automaticamente 1. Fare doppio clic su di esso per visualizzare i dettagli della regola.

Nel caso in cui un unico Web server ospitasse tutti i siti web su vhosts (siti), sarebbe possibile fare un’unica regola mantenendo l’intestazione dell’host.
A : vediamo qui che il traffico in arrivo sul server viene inoltrato e non riscritto come possiamo vedere nell’elenco delle regole. Ora limiteremo il trasferimento all’URL lab.rdr-it.intra. Clicca su Condizioni 1.

Fare clic sul pulsante Aggiungi 1. Nella nuova finestra che si apre, inserisci la variabile server che testeremo qui {HTTP_HOST} 2, nel campo modello 03 inserisci il (sotto)dominio da elaborare e clicca su OK 4 per salvare la condizione.

A : viene aggiunta la condizione, fare clic su Applica 1 per tenerne conto.

Ai fini del tutorial, ho aggiunto un secondo sito arr-demo.rdr-it.intra che passa tramite ARR e che è ospitato sullo stesso server IIS.
Tipo di sito I record DNS devono puntare al server ARR.

Avvia un browser Internet e vai ai siti.

Per validare il passaggio in ARR, è possibile verificarlo a livello dei log di IIS che si trova in C:/inetpub/LogFiles/W3SVC1 (di default). Il passaggio attraverso ARR può essere monitorato anche a livello di monitoraggio 1 in azienda con una pagina dedicata alle statistiche 2.


Configurazione: SSL Offload
Lo scopo dell’offload SSL è pubblicare un sito utilizzando ARR su HTTPS e fare in modo che il server ARR comunichi con il server Web su HTTP. Questa soluzione allevia il server web dalla crittografia.
Installazione del certificato sul server ARR
Poiché ARR è collegato ad un unico sito (sito Web predefinito) su IIS, se devono essere supportati più domini è necessario disporre di un certificato di tipo SAN.
Per il tutorial, ho generato un certificato autofirmato in *.rdr-it.intra per coprire tutti i sottodomini. Qui troverai un generatore di certificati autofirmato.
Vai alla radice della console IIS 1 quindi su Certificati server 2.

Fare clic su Importa 1 nel menu Azioni. Selezionare il certificato in formato pfx 2, inserire la chiave privata (password) 3, scegliere lo storage store 4 (Web Hosting) e cliccare su OK 5 .

Il certificato viene importato 1>.

Visualizza l’elenco dei siti disponibili sul server cliccando sulla cartella Siti 1, seleziona il sito predefinito 2, cliccaci sopra con il tasto destro e clicca su Bindings… 3.

Fare clic sul pulsante Aggiungi 1.

Tipo di collegamento scegliere https 1, selezionare il certificato 2 quindi premere il pulsante OK 3.

L’associazione HTTPS viene aggiunta 1. Uscire facendo clic su Chiudi 2.

Configurazione delle regole di riscrittura – Routing
Vai alla pagina di gestione delle regole di riscrittura.
Aggiungi una nuova regola dal menu Azione facendo clic su Aggiungi regole 1, scegli Regola vuota 2 quindi fai clic su OK 3.

Assegna un nome alla regola 1, clicca su Condizioni 2 per espandere l’opzione, aggiungi le due regole 3 (la prima verifica che la chiamata avvenga in https e la seconda limita il dominio). Nella parte Azione, selezionare lo schema 4 quindi la server farm 5 e fare clic su Applica 6.

Ritorna all’elenco delle regole, si aggiunge 1.

Avvia un browser e accedi al sito in https.

Come si può vedere di seguito, non esiste un legame SSL sul sito IIS A.

Per forzare l’accesso in HTTPS (SSL), è necessario aggiungere prima della regola di scarico, una regola che esegua un reindirizzamento 301 da HTTP a HTTPS.
Configurazione: Abilita cache
Una delle funzionalità disponibili con ARR è il sistema cache, che salva le richieste sui server web.
Sul server è stata creata una cartella in cui archiviare la cache.
Dalla console IIS, fare clic su Instradamento richiesta applicazione 1.

Dal menu Azioni clicca su Aggiungi Drive… 1.

Immettere il percorso della cartella 1, definire un limite 2 quindi fare clic su OK 3.

Lo spazio di archiviazione per la cache è dichiarato 1.

Vai in uno dei siti dichiarati nella farm 1 e clicca su Caching 2.

In caso contrario attivare la cache spuntando la casella 1 Abilita cache su disco e cliccare su Applica 2.

Aggiorna il sito in cui è abilitata la memorizzazione nella cache.
Apri la cartella in cui è scritta la cache, dovresti avere i file A.
