Configurando o Nginx para capturar todos os vhosts não manipulados

38

Se eu já tiver um monte de virtualhosts, como posso criar um host virtual para lidar com solicitações que não correspondem a nenhum dos hosts virtuais? (ou seja, o acesso por IP, outro domínio ligando para IP, .etc .etc)

    
por SandyD 30.07.2013 / 01:57

3 respostas

48

nome_do_servidor _; e default_server na configuração de escuta são o que você está procurando.

Exemplo:

server {

   listen 80 default_server;
   server_name _;

   root /var/www/default; (or wherever)    

}
    
por 30.07.2013 / 19:02
3
server {
  listen 80 default_server;
  listen 443 ssl default_server;
  listen [::]:80 default_server;
  listen [::]:443 ssl default_server;

  server_name _;
  root /path/to/default;
}

As entradas são para a porta 80 (HTTP), porta 443 (HTTPS), porta 80 IPv6 e porta 443 IPv6, respectivamente.

Você pode considerar adicionar log_not_found off; para evitar adicionar uma entrada de registro para a página não ser encontrada.

    
por 08.02.2017 / 01:30
3

Se você usar SSL, precisará de um canal extra para um certificado padrão e uma chave (que podem ser autoassinados).

server {
    server_name _;
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    return 404; # or whatever
}

O Nginx tentará aceitar a conexão SSL em um default_server IP / port-matching. Se tal servidor estiver faltando cert / key, o nginx soltará a conexão. Não tentará outros servidores. Então não esqueça do cert / key.

    
por 30.03.2017 / 23:10