Como recuso uma solicitação para um subdomínio no Nginx

3

Se minha configuração for parecida com

server {
  listen 80;
  server_name example.com;
}

Como recuso solicitações para subdominio.example.com?

    
por Tom 05.01.2012 / 20:07

3 respostas

6
server {
    listen 80;
    server_name subdomain.example.com;
    deny all;
}

Ou, se você quiser eliminar todo o tráfego que não pertence a um domínio definido explicitamente em outro bloco server em sua configuração:

server {
    listen 80 default_server;
    server_name _;
    deny all;
}
    
por 05.01.2012 / 20:17
1

A resposta de Shane Madden irá funcionar, ou você também pode usar o código de resposta não-padrão 444, que irá matar a conexão sem enviar nenhum cabeçalho (fonte: link )

Para bloquear subdomínios específicos:

server {
    server_name subdomain.example.com;
        return 444;
}

Ou para bloquear todos os subdomínios ou domínios que não são tratados em outro lugar:

server {
    server_name _;
    return 444;
}

A última opção é útil ao bloquear domínios que estão duplicando seu conteúdo e, portanto, podem prejudicar suas classificações no mecanismo de pesquisa. (Isso vem da experiência pessoal.)

    
por 06.01.2012 / 20:09
1

Se o seu subdomínio tiver trafic, redirecione melhor toda a solicitação do subdomínio para o domínio assim

        if ($http_host != "example.com") {
            rewrite ^ http://example.com$request_uri permanent;
    }

na seção do servidor

É SEO amigável.

    
por 07.01.2012 / 18:10