IIS7 site principal com subdiretórios que também são sites

4

Sou novo na administração do IIS, mas preciso configurar um site cuja raiz do site tenha vários diretórios que também sejam sites.

Por exemplo, digamos que eu tenha um site no link

O diretório raiz desses sites tem várias pastas para seu conteúdo, mas também tem dois outros diretórios, por exemplo, / community e / labs.

Eu quero que esses diretórios sejam a raiz do doc para sites separados, de modo que você acessaria um site asp.net completamente diferente se acessasse link ou link se você acessou o site principal em link .

Realmente, isso seria 3 sites em um diretório.

Posso ver como você pode criar sites separados usando portas diferentes, mas quero que todos estejam na porta 80.

Esses sites subdiretórios são sites virtuais? Eu sei que isso é possível porque nossos administradores de sistemas configuraram isso para o nosso site corporativo, para o qual publiquei muitas vezes, mas estou tentando fazer isso sozinho e não consigo uma resposta da TI corporativa em como eles fizeram isso. : ^)

Obrigado Scott

    
por Scott 09.02.2012 / 20:20

3 respostas

10

Isso é muito fácil no IIS 7.5

Como um "Web Site", simplesmente, é apenas um espaço reservado com pelo menos um mapeamento de ponto de extremidade (uma Binding ) e um ou mais aplicativos.

Crie um site (ou modifique as configurações do site padrão). Ao expandir o site no Gerenciador do IIS, você verá uma árvore de subdiretórios, ou seja, os subdiretórios no diretório físico para o qual o aplicativo raiz do seu site aponta.

Clique com o botão direito do mouse no subdiretório no qual deseja hospedar outro aplicativo (por exemplo, "Comunidade") e selecione Converter em aplicativo . Agora você poderá configurar um pool de aplicativos alternativo para veicular o conteúdo e poderá configurar o aplicativo individualmente, independentemente de (quase) qualquer configuração de recurso em seu aplicativo raiz.

Para uma explicação mais detalhada, visite o blog de Mike Volodarsky , ele projetou a arquitetura de aplicativos do IIS 7, então se alguém, ele sabe o que é o que: -)

    
por 09.02.2012 / 20:59
1

No IIS7, cada site tem um aplicativo padrão, mas você pode adicionar sub- Applications com bastante facilidade. Basta clicar com o botão direito do mouse no site e clicar em "Adicionar aplicativo". Aqui você especificaria o alias (/ community), o pool de aplicativos (pode querer fazer um novo antes) e o caminho para os arquivos físicos no servidor.

    
por 09.02.2012 / 21:01
0

Uma forma alternativa que não toca em sites existentes (como muitos são criados e gerenciados por produtos M $ automaticamente g ) é um proxy reverso com reescrita de URL e / ou patch de resposta, se necessário:

Reverso Proxy com URL Rewrite v2 e Roteamento de Solicitação de Aplicativo

As instruções bastante longas se resumem a:

  • instale a extensão de reescrita do IIS
  • adicione os gostos dessas linhas à raiz web.config em /configuration/system.webServer (mostra como adicioná-los com a interface do usuário InetMgr ):
<rewrite>
    <!--route requests-->
    <rules>
        <rule name="Reverse Proxy to webmail" stopProcessing="true">
            <match url="^webmail/(.*)" />
            <action type="Rewrite" url="http://localhost:8081/{R:1}" />
        </rule>
        <rule name="Reverse Proxy to payroll" stopProcessing="true">
            <match url="^payroll/(.*)" />
            <action type="Rewrite" url="http://localhost:8082/{R:1}" />
        </rule>
    </rules>
    <!--patch response HTML-->
    <outboundRules>
        <rule name="Add application prefix" preCondition="IsHTML">
            <match filterByTags="A" pattern="^/(.*)" />
            <conditions>
                <add input="{URL}" pattern="^/(webmail|payroll)/.*" />
            </conditions>
            <action type="Rewrite" value="/{C:1}/{R:1}" />
        </rule>
        <preConditions>
            <preCondition name="IsHTML">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
            </preCondition>
        </preConditions>
    </outboundRules>
</rewrite>
    
por 04.07.2014 / 17:55