Exibe o site correto do servidor ao acessar via IP e encaminhamento de prot.

0

Configurei o encaminhamento de porta para apontar para o servidor da Web do meu trabalho para que os usuários selecionados possam acessar um site por meio de nosso endereço IP externo quando estiver fora do site. O encaminhamento para o servidor funciona, mas neste servidor existem vários Configs, e no momento está apenas parando no primeiro, então o site errado é mostrado.

Por exemplo, leve estas duas configurações, e nosso endereço IP externo é 11.22.33.44 - o que eu gostaria de poder fazer é ir para http://11.22.33.44:789 (porta aleatória, pode ser qualquer) e ter o site no Config 1 show. No entanto, o site no Config 2 está mostrando, porque vem em primeiro lugar em ordem alfabética na lista de configurações. Existe uma maneira (semelhante ao ServerAlias) que eu posso verificar qual porta foi acessada e usar a configuração corrisponding?

Config 1

Listen *:789
NameVirtualHost *:80
NameVirtualHost *:789

<VirtualHost *:80 *.789>
        ServerName test.dynedrewett.com
        DocumentRoot /var/www/html/website/test
        ErrorLog /var/log/httpd/test.dynedrewett.com-error
        CustomLog /var/log/httpd/test.dynedrewett.com-access combined
        ErrorDocument 401 /wp-content/themes/dyne_drewett/401.php
</VirtualHost>

Config 2

<VirtualHost *:80>
        ServerName dummy.dynedrewett.com
        ServerAlias dummy
        DocumentRoot /var/www/html/intranet/intranet_test
        ErrorLog /var/log/httpd/dummy.dynedrewett.com-error
        CustomLog /var/log/httpd/dummy.dynedrewett.com-access combined
        ErrorDocument 403 /wp-content/themes/dyne_drewnett/403.php
</VirtualHost>

Está lá fora, posso alterar as configurações para que o site correto seja exibido ao fazer isso? Obrigado.

    
por David Gard 31.07.2012 / 12:32

1 resposta

2

Quando você tem vários nomes de domínio hospedados no mesmo endereço IP, o servidor da web usa o domínio presente nos cabeçalhos de solicitação para descobrir qual conteúdo deve ser exibido. A maioria das instalações do apache veio com uma configuração do "VirtuaHost" por padrão, mesmo se estiver servindo apenas um site.

Você pode tornar um site o padrão quando a solicitação não tiver informações suficientes para escolher o VirtualHost certo, verifique o Documentação do Apache sobre um host virtual padrão .

A outra maneira é apontar algum nome de domínio para o IP externo e incluir este nome de domínio na configuração do VirtualHost usando uma diretiva ServerAlias.

[atualização]

Você não pode servir mais de um site no mesmo ip / port usando vhosts baseados em nome, mas pode atendê-los em portas TCP alternativas (ou endereços IP, se houver mais de um disponível).

Se você não puder configurar um DNS externo, para usar vhosts baseados em nome, pode recorrer a esse truque: editar o arquivo / etc / hosts (ou %WINDIR%\system32\drivers\etc\host ) da máquina cliente para apontar o mesmo dns interno nome para o seu IP externo.

    
por 31.07.2012 / 12:59