Share via


Proxy inverso - Modello di regola

di Ruslan Kashšev

I modelli di regola vengono usati per fornire un modo semplice per creare una o più regole di riscrittura per un determinato scenario. Il modulo di riscrittura URL 2 include diversi modelli di regola per alcuni scenari di utilizzo comuni. Oltre a tale interfaccia utente del modulo di riscrittura URL fornisce un framework per collegare i modelli di regole personalizzati. Questa procedura dettagliata illustra come usare il modello di regola "Proxy inverso" incluso nel modulo di riscrittura URL. Per altre informazioni sulla configurazione del proxy inverso con iis URL Rewrite Module e IIS Application Request Routing, vedere Proxy inverso con URL Rewrite v2 e Application Request Routing.To learn more about configuring reverse proxy with IIS URL Rewrite Module and IIS Application Request Routing, refer to Reverse Proxy with URL Rewrite v2 and Application Request Routing.

Prerequisiti

Questa procedura dettagliata richiede i prerequisiti seguenti:

  • IIS 7 o versione successiva con ASP.NET servizio ruolo abilitato;
  • URL Rewrite Module 2.0 installato;
  • Iis Application Request Routing installato.

Creazione del sito Web di esempio

Per semplicità, lo scenario di proxy inverso usato in questa procedura dettagliata verrà implementato in un singolo server, con iis "Sito Web predefinito" che funge da sito proxy inverso e applicazione contenuto ospitata in siti Web IIS separati nello stesso server.

Per creare il sito Web del contenuto di esempio:

  1. Creare una cartella denominata "contentsite" nella cartella seguente:

    %SystemDrive%\inetpub\ folder.
    
  2. Creare un sito Web IIS denominato "contentsite" che punta alla cartella corrispondente in %SystemDrive%\inetpub\. Usare la porta 8081 per il sito.
    È possibile usare i comandi seguenti per creare i siti:

    %windir%\System32\inetsrv\appcmd.exe add site /name:"contentsite" /bindings:http/*:8081: /physicalPath:"%SystemDrive%\inetpub\contentsite
    
  3. Creare un file denominato default.aspx nella cartella seguente:

    %SystemDrive%\inetpub\contentsite
    
  4. Copiare il markup ASP.NET seguente, incollarlo nel file e salvare il file come default.aspx:

    <%@ Page Language="C#" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Reverse Proxy Test Application</title>
    </head>
    <body>
        <h1>Reverse Proxy Test Page</h1>
        <p>Requested URL path is <%= Request.ServerVariables["SCRIPT_NAME"] %></p>
        <p><a href="http://<%= Request.ServerVariables["HTTP_HOST"] + Request.ServerVariables["SCRIPT_NAME"] %>">Here</a> is the link to this page.</p>
    </body>
    </html>
    
  5. Per assicurarsi che il sito funzioni correttamente, aprire un'esplorazione Web e richiedere gli URL seguenti:

    http://localhost:8081/default.aspx
    

Generare regole in ingresso e in uscita usando un modello di proxy inverso

Il modello di regola "Proxy inverso" può essere usato per generare una regola di riscrittura in ingresso usata per proxyare le richieste HTTP a un altro server. Facoltativamente, il modello può anche creare una regola di riscrittura in uscita in grado di correggere i nomi host negli URL dei collegamenti all'interno delle risposte HTML. Nel caso di esempio descritto in questa procedura dettagliata il nome host del server proxy è localhost e il nome host del server del contenuto è localhost:8081. L'applicazione Web nel server di contenuto genera un collegamento nella risposta HTML che usa un nome host interno, ad esempio http://localhost:8081/default.aspx. La regola in uscita corregge questo collegamento per usare il nome host del proxy, ad esempio http://localhost/default.aspx.

Per creare le regole usando il modello di regola, seguire questa procedura:

  1. In Gestione IIS selezionare "Sito Web predefinito" nella visualizzazione albero a sinistra.
  2. Aprire la visualizzazione delle funzionalità Di riscrittura URL.
  3. Nella visualizzazione delle funzionalità Di riscrittura URL selezionare "Aggiungi regole"... azione e quindi selezionare il modello "Proxy inverso":
    Screenshot della finestra di dialogo Aggiungi regole che mostra le opzioni del modello di regola. Il proxy inverso è evidenziato.
  4. Nella finestra di dialogo "Aggiungi regole proxy inverso" immettere quanto segue:
    Nome del server o indirizzo IP in cui verranno inoltrate le richieste HTTP: localhost:8081
    Selezionare la casella di controllo "Riscrivere i nomi di dominio dei collegamenti nelle risposte HTTP" e immettere:
    Da: localhost:8081
    A: localhost
    Screenshot della finestra di dialogo Aggiungi regole proxy inverso.
  5. Fare clic su OK. Verranno create sia le regole in ingresso che in uscita:
    Screenshot della pagina I S Manager che mostra la pagina U R L Rewrite.

Test del proxy inverso

Per verificare che le regole di riscrittura generate dal modello di regola funzionino correttamente, aprire un Web browser e effettuare una richiesta a http://localhost/default.aspx. IIS "Sito Web predefinito" riceverà questa richiesta e lo instrada in http://localhost:8081/default.aspx base alla regola di riscrittura in ingresso. Quando la risposta HTTP viene restituita dal sito Web del sito contenuto , la regola di riscrittura in uscita modifica l'URL del collegamento all'interno del codice HTML per riscrivere il nome host da localhost:8081 a localhost:

Screenshot di una finestra del browser che mostra una pagina di test del proxy inverso.

Riepilogo

In questa procedura dettagliata si è appreso come usare il modello di regola "Proxy inverso" per generare regole di riscrittura per implementare una semplice configurazione del proxy inverso in IIS. Questo modello di regola può essere usato come punto di partenza per generare le regole di base che possono essere modificate o modificate in un secondo momento per soddisfare i requisiti specifici di routing e riscrittura disponibili per l'applicazione Web.This rule template can be used as a starting point to generate the base rules that can be adjusted or modified later to address the specific routing and rewriting requirements that you have for your Web application.