nginx corresponde a 127.0.0.1 antes de *: 80

1

Eu tenho a seguinte configuração de diretivas de dois servidores, incluindo conf.d / *. conf. Quando navego para o servidor através do endereço IP público e externo, parece que o servidor corresponde ao 127.0.0.1 quando uma entrada é adicionada ao ficheiro localhost.access_log. Eu esperava que isso só acontecesse ao acessar via localhost. De um IP externo, esperava corresponder a diretiva .host.tld server_name ou o parâmetro default_server .

Preciso garantir um pedido de como os arquivos conf são carregados? Por que a escuta em 127.0.0.1 seria correspondida dessa maneira? É a segunda diretiva de localização que está vazia?

server {
    listen 127.0.0.1;
    server_name localhost;

    access_log /var/log/nginx/localhost.access_log main;
    error_log /var/log/nginx/localhost.error_log info;

    root /var/www/localhost/htdocs;
}

server {
    listen 80 default_server;
    server_name .host.tld;

    access_log /var/log/nginx/host.access_log main;
    error_log /var/log/nginx/host.error_log info;

    root /var/www/host/htdocs;

    location = / {
            index index.php index.html;
    }

    location / {
    }
}
    
por ToothlessRebel 09.01.2015 / 05:44

1 resposta

1

Alterar as diretrizes listen para 80 e adicionar o nome 127.0.0.1 ao server_name do segmento localhost corrigiu:

server {
    listen 80;
    server_name localhost;

    access_log /var/log/nginx/localhost.access_log main;
    error_log /var/log/nginx/localhost.error_log info;

    root /var/www/localhost/htdocs;
}

server {
    listen 80 default_server;
    server_name .host.tld;

    access_log /var/log/nginx/host.access_log main;
    error_log /var/log/nginx/host.error_log info;

    root /var/www/host/htdocs;

    location = / {
            index index.php index.html;
    }

    ...
}
    
por 10.01.2015 / 09:27