Como bloquear não definido server_name no Nginx?

4

Eu tenho dois server {} blocos com os domínios que preciso usar.

Mas eu encontrei um problema ..... se eu configurar o DNS de outro domínio que aponte para o meu servidor, resposta nginx corretamente! Por quê?

Nginx deve responder com um erro http! mas retorna o site que tem o mesmo endereço IP, por quê? Eu não tenho um nome de servidor com esse domínio!

Obrigado!

    
por Dail 20.04.2012 / 08:56

1 resposta

7

Ele responde porque você não tem um vhost 'default' separado configurado. Há sempre um vhost padrão ou de fallback configurado, de modo que o nginx saiba o que fazer no caso de receber uma solicitação do tipo que você enviou.

A documentação do nginx fornece uma boa descrição de como o servidor-nome-a-vhost-matching é executado, mas resumindo, eu recomendaria configurar um novo vhost como este:

server {
  listen 80 default_server;
  root /usr/share/empty;
}

(Você pode ter que criar /usr/share/empty se ainda não existir)

Isso simplesmente servirá um diretório vazio para qualquer pessoa que acertar seu servidor com um nome de vhost não reconhecido. Você pode ficar mais chique com vários tipos de páginas de erro e outras coisas, se quiser.

    
por 20.04.2012 / 09:27

Tags