O cabeçalho do host das solicitações é ignorado?

1

Eu li os documentos do apache, mas há muitas coisas diferentes no Debian [lenny, 5.0.6].

O Apache ignora o cabeçalho do host fornecido pelo navegador: link ou link ou link são todos servidos, mas devem ser bloqueados, de acordo com a minha definição. A definição para x deriva do meu arquivo hosts [que todos poderiam fazer desta forma]. Eu sou novo no apache, mas no meu IIS isso funciona como esperado. Todos os navegadores funcionam de forma igual [sem problemas no cabeçalho do navegador].

Eu configurei dois VirtualHosts, um trecho:

NameVirtualHost hugo: 80

DocumentRoot / usr / share / doc Alias / doc / / usr / share / doc / Opções Índices MultiViews FollowSymLinks Permitir a partir de 192.168.24.0/24

O outro VirtualHost está configurado para a porta 81.

Eu vou para o meu arquivo hosts em qualquer caixa, e adiciono o endereço IP do hugo sob o novo nome x. Em seguida, x é exibido, embora o cabeçalho do host no apache é o hugo !! Todo usuário vindo da internet pode fazer o mesmo!

Estou sem esperança agora. Alguém tem alguma ajuda para mim?

Seria realmente muito bom!

UPDATE

Agora, acabei de remover tudo do httpd.conf e criei dois sites ativados para facilitar:

Primeiro, para nagios [só deve ser exibido exatamente assim:

http://thor:81

NameVirtualHost thor:81

<VirtualHost thor:81>

ServerName thor:81

ServerAlias thor:81
ServerPath /usr/share/nagios3
DocumentRoot /usr/share/nagios3
</VirtualHost>

mas responde em

http://thor.mbg.local:81
e até mesmo em
http://x:81
também!

Em seguida, um servidor de teste:

NameVirtualHost thor.mbg.local:80

    
    ServerName thor.mbg.local
    ServerAlias thor.mbg.local
    DocumentRoot /var/www/default
    
    Order Allow,Deny
        Allow From All
    
    

Isso também, respostas em

http:thor/
e
http://thor.mbg.local/
Essa configuração completa é aceita pelo apache. Não consegui encontrar um padrão que substituiria a configuração.

Existe algum outro software de servidor http, o que torna isso correto? (Eu estou vindo do IIS, onde isso funciona.)

Agora: Entendi!

Obrigado por toda a ajuda! Eu não reconheci que todas as propriedades como nome / ip e portas devem corresponder em todos os lugares. No meu caso, um fallback para o host padrão ocorreu !!!

Eu iniciei uma VM com um "play-debian" do zero e trabalhei nisso. Se alguém vai ver a definição final, aqui está:

No debians port.conf, eu tenho agora:

NameVirtualHost 192.168.26.92:80

b) no httpd.conf:

<VirtualHost 192.168.26.92:80>

DocumentRoot /var/www/block

<Directory /var/www/block>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order Allow,Deny
    Allow from All ##would just like to see, this is the end!!!
</Directory>

</VirtualHost>

<VirtualHost 192.168.26.92:80>

    ServerName wl1
    ServerAlias wl1
    DocumentRoot /var/www/test80

    <Directory /var/www/test80>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order Allow,Deny
    Allow from All
    </Directory>

    LogLevel debug
    ErrorLog /var/log/apache2/test80-error.log
    CustomLog /var/log/apache2/test80-access.log vhost_combined

</VirtualHost>

<VirtualHost 192.168.26.92:80>

    ServerName wl2
    ServerAlias wl2
    DocumentRoot /var/www/test81

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/test81>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    LogLevel info
    ErrorLog /var/log/apache2/error-test81.log
    CustomLog /var/log/apache2/test81-access.log vhost_combined

</VirtualHost>

Para um iniciante debian, eu sinto, é ruim ter configuração demais arquivos, você perderá a visão geral.

Muito obrigado por toda a ajuda!

br ++ mabra

    
por mabra 16.10.2010 / 23:18

2 respostas

2

Em muitas configurações, uma das definições de servidor virtual disponíveis, geralmente a primeira no arquivo, atua como padrão. O padrão é o que o Apache serve quando os cabeçalhos da solicitação não correspondem a um dos hosts virtuais.

Se isso não responder à sua pergunta, forneça um exemplo mais completo da configuração, dos URLs solicitados, do que é servido e do que você esperava que seja exibido.

EDITAR

Tanto quanto me lembro, com a sua configuração, quando o apache recebe um pedido com o cabeçalho HTTP Host: x ele vê que não há definição para o que deve fazer. Nil desperandum, acho, eu vou servir algumas coisas do primeiro site que vem à mão, oh olha, há um site para Thor - eu só vou servir coisas de lá!

Veja o link

The first vhost on this list (the first vhost in the config file with the specified IP address) has the highest priority and catches any request to an unknown server name or a request without a Host: header field.

Se isso o incomodar, configure um host virtual para unknown.server.name, aponte-o para um diretório vazio e configure um 404 personalizado que diz "alguém fez um nome de host apontar para o endereço IP de nossos servidores sem organizar conosco para um site a ser servido para esse hostname - desculpe! "

    
por 17.10.2010 / 00:26
0

Você não precisa estar usando portas diferentes. Eu acho que essa é a fonte da sua confusão aqui.

A documentação mais recente para hospedagem virtual baseada em nome (que é, eu acho, o que você quer fazer) é muito boa:

link

    
por 17.10.2010 / 18:06