Como obtenho o nginx para registrar e eliminar hosts virtuais não configurados?

1

Eu tenho uma instalação nginx que serve alguns hosts virtuais; estes estão funcionando bem. No entanto, parece que lembro que esse servidor é responsável por hospedar alguns outros sites. Não me lembro quais são.

Eu não quero que essas solicitações sejam resolvidas para o vhost padrão (arbitrário).

No momento, por exemplo, ir para http://10.0.0.10/ (o endereço interno) é resolvido para o vhost padrão. Este vhost está executando o drupal, e - porque o drupal não reconhece o vhost - ele traz as instruções de instalação do drupal. Estou preocupado que isso esteja acontecendo com outros nomes externos que resolvem esse servidor.

Existe uma maneira de configurar o nginx para que ele registre e elimine solicitações que não correspondem exatamente a um vhost configurado?

Como alternativa, a pergunta poderia ser colocada: "Como configuro um vhost padrão que corresponda a todos os nomes desconhecidos? E como configuro esse vhost para registrar e descartar acessos?"

    
por Roger Lipscombe 03.01.2014 / 17:31

1 resposta

2

Configure um servidor de captura padrão, registre as solicitações em um arquivo específico e retorne algum status ou outro. Seus outros servidores conhecidos podem ser configurados com valores conhecidos de server_name.

    log_format with_host '$remote_addr - $remote_user [$time_local] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent" "$host"';

    server {
            listen 80 default_server;
            location / {
                  access_log /var/log/nginx/unknown_site.log with_host;
                  return 404;       
            }
    }

    server {
            listen 80;
            server_name drupal.com;                   
            location / {
                ....         
            }
    }
    
por 03.01.2014 / 17:50

Tags