Configurer plusieurs sites sur un même Web Role Azure

Si vous avez suivi l’actualité d’Azure, vous avez pu voir que Microsoft avait annoncé que les fonctionnalités d’IIS seraient disponible au niveau des Web Role. Nous pouvons donc configurer notre Web Role afin d’y définir les sites, répertoires virtuels ou encore les applications comme nous le souhaitons.

A l’ajout d’un projet Azure à notre solution Visual Studio, nous allons choisir de déployer un Web Role.


AddWebRole

Nous allons ajouter 2 sites web supplémentaires à notre solution.


Solution

Examinons maintenant le fichier ServiceDefinition.csdef de notre projet Azure :

<ServiceDefinition name="AzureProject" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
    <WebRole name="WebRoleSample">
        <Sites>
            <Site name="Web">
                <Bindings>
                    <Binding name="Endpoint1" endpointName="Endpoint1" />
                </Bindings>
            </Site>
        </Sites>
        <Endpoints>
            <InputEndpoint name="Endpoint1" protocol="http" port="80" />
        </Endpoints>
        <Imports>
            <Import moduleName="Diagnostics" />
        </Imports>
    </WebRole>
</ServiceDefinition> 

 

Dans ce fichier, on peut voir la définition de notre Web Role.

Il contient un site nommé “Web” disponible en http sur le port 80. Nous pouvons observer que l’élément xml Site possède comme élément parent “Sites”. Nous allons définir nos autres sites de cette manière :

<ServiceDefinition name="AzureProject" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
    <WebRole name="WebRoleSample">
        <Sites>
            <Site name="Web">
                <VirtualDirectory name="Images" physicalDirectory="../PremierSiteWeb/Img">
                </VirtualDirectory>
                <Bindings>
                    <Binding name="Endpoint1" endpointName="Endpoint1" />
                </Bindings>
            </Site>
            <Site name="PremierSite" physicalDirectory="../PremierSiteWeb">
                <VirtualApplication name="SecondSite" physicalDirectory="../SecondSiteWeb">
                </VirtualApplication>
                <Bindings>
                <Binding name="Endpoint2" endpointName="Endpoint2"/>
                </Bindings>
            </Site>
        </Sites>
        <Endpoints>
            <InputEndpoint name="Endpoint1" protocol="http" port="80" />
            <InputEndpoint name="Endpoint2" protocol="http" port="81" />
        </Endpoints>
        <Imports>
            <Import moduleName="Diagnostics" />
        </Imports>
    </WebRole>
</ServiceDefinition> 

 

Dans le premier, nous avons ajouté un répertoire virtuel “Images” qui pointe sur le répertoire “../PremierSiteWeb/Img”. Nous avons ensuite déployé le site PremierSiteWeb en http sur le port 81. Puis dans ce site, nous avons défini une application virtuelle qui pointe sur le projet SecondSiteWeb. Lorsque nous déployons localement notre web role (F5), 2 navigateurs s’ouvrent sur les 2 sites. Si nous ouvrons la console d’administration d’IIS, nous retrouvons les 2 sites, le répertoire virtuel, ainsi que l’application :


IIS

Ici mon IIS local possède déjà un site sur le port 80. Pour le déploiement local, Visual Studio a publié mes sites sur les ports 81 et 82.

Après avoir déployé notre Web Role sur Azure, nous pouvons nous connecter en remote desktop à notre VM Azure, accéder au serveur IIS et vérifier que nos 2 sites ont bien été déployés :


image

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s