Simule domínios diferentes na mesma máquina

2

Vou ter dois servidores (SSO e servidor de aplicativos) em execução na mesma máquina, mas ouvindo em portas diferentes. É possível atribuir os seguintes endereços: example.com e app.example.com para que o segundo seja um subdomínio do primeiro?

Como eu conseguiria isso? eu usaria um arquivo hosts ou Active Directory ?

Editar :
Eu não vou usar o IIS. Eu quero testar o produto OpenAM que será implantado como aplicativo Tomcat (provavelmente escutando na porta 8080), e quero instalar o agente de política OpenAM no servidor de aplicativos Glassfish , que hospedará algum aplicativo da Web, provavelmente, atendendo na porta 9090.
Agora, o que eu quero alcançar é redirecionar todas as solicitações example.com para 10.11.11.22:8080 e app.example.com para 10.11.11.22:9090.

    
por jFrenetic 19.11.2011 / 10:49

2 respostas

3

Você pode ter mais de um site em execução no mesmo servidor da web, usando cabeçalhos de host / hosts virtuais . Esse é um mecanismo no qual o servidor da Web examina o nome do host fornecido pelo navegador (usado para acessar o servidor da Web) e exibe o conteúdo do site apropriado.

Você nem precisa definir portas diferentes para sites http se os definir com cabeçalhos de host exclusivos. Se você preferir ter portas diferentes, isso também é bastante fácil na maioria dos servidores da Web (você não diz qual servidor da Web está usando).

Quanto a como configurar os nomes dos sites, isso também é bastante fácil, embora não seja realmente algo relacionado ao diretório ativo, e eu não pessoalmente usaria arquivos hosts para nada diferente do teste dev em um servidor web local. Você simplesmente criaria entradas no DNS para os dois endereços de sites, apontando para o servidor da web.

Você criaria um registro "A" para o nome do host & Endereço IP do próprio servidor Web (por exemplo, mywebserver.example.com ) e, em seguida, use dois registros "CNAME" (aliases) que apontam example.com e app .example.com nesse registro. Isso informa a qualquer cliente que procure um desses dois endereços de sites no DNS para usar o endereço IP definido para o próprio servidor da Web.

atualização para editar o endereço

Não há como incluir o número da porta em um nome de host ou endereço IP. Seus usuários terão que digitar example.com:8080 e app.example.com:9090. O que você está pedindo está fora do escopo do que pode ser feito nos arquivos DNS ou hosts, porque não está relacionado à resolução nome .

As duas maneiras de contornar isso que eu posso pensar seria

  1. Para criar dois servidores virtuais separados, cada um com o aplicativo instalado em um servidor da Web que atende na porta 80.

  2. Instale o IIS (ou qualquer outro) na porta 80 e tenha um site para cada cabeçalho de host, como descrevi acima. Em seguida, use o redirecionamento de cada site para o "correto" que está escutando em qualquer porta.

por 19.11.2011 / 11:46
3

Você pode usar seu arquivo hosts ou seu servidor dns, o que for mais fácil, geralmente hosts , a menos que você precise ter os servidores disponíveis fora de sua máquina.

Como você mencionou o Active Directory, presumo que esteja usando o Windows / IIS. Nesse caso, as ações necessárias serão:

  1. Preencha seu arquivo hosts / servidor DNS com example.com e app.example.com apontando para o endereço IP apropriado ( Observação: você pode atribuir diferentes endereços IP a cada nome de domínio e ter sua máquina com vários endereços IP , se desejar )
  2. Configure vários sites no Gerenciador do IIS e aplique uma ligação de cabeçalho de host a cada um deles.

Se, de fato, você hospeda esses dados no IIS, você pode fazer com que eles escutem na porta 80, caso escolham como o IIS direcionará o tráfego para o site apropriado, dependendo do cabeçalho do iot do host. em, por exemplo example.com ou app.example.com

    
por 19.11.2011 / 11:46