servidor padrão nginx não está funcionando

1

Estou usando o Debian, o mais recente dotdb nginx-lite. Eu li que a primeira seção server encontrada por nginx será usada como a seção de fallback / default usada se não houver uma seção de servidor específica para um domínio.

Eu deletei sites-available e sites-enabled da minha instalação porque eu uso uma montagem dedicada /www para tudo relacionado a http.

Meu /etc/nginx/nginx.conf tem essas linhas, incluindo outros confs:

    include /www/conf.d/nginx/default.conf;
    include /etc/nginx/conf.d/*.conf;
    include /www/conf.d/nginx/*;

default.conf parece com:

server {
        server_name 0.0.0.0;
        listen 0.0.0.0:80;
        rewrite ^ http://mymaintarget.com permanent;
}

Isso não funciona para mim. Eu ainda recebo este aviso:

Restarting nginx: nginxnginx: [warn] conflicting
server name "0.0.0.0" on 0.0.0.0:80, ignored

Tenho certeza de que não há outra seção do servidor e o default.conf é o primeiro incluído / usado.

Alguém sabe o que está errado ou como a maneira correta de configurar um servidor padrão é?

Atualizar arquivos de configuração completos:

nginx.conf:

user www-data;
worker_processes 8;
pid /run/nginx.pid;

events {
        worker_connections 768;
}

http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 10;
        types_hash_max_size 2048;
        server_tokens off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        error_log /var/log/nginx/error.log;

        gzip on;
        gzip_disable "msie6";
        gzip_vary on;


        # Default VirtualHost
        include /www/conf.d/nginx/default.conf;

        # conf.d is empty anyways
        #include /etc/nginx/conf.d/*.conf;

        # VirtualHosts
        include /www/conf.d/nginx/*;
}

default.conf:

server {
        listen 80 default_server;
        rewrite ^ http://blog.flowl.info permanent;
}
    
por DanFromGermany 24.02.2014 / 13:41

2 respostas

3

Para definir um servidor padrão:

server {
    listen 80 default_server;
    rewrite ^ http://mymaintarget.com$request_uri? permanent;
}

O parâmetro default_server incluirá qualquer outro domínio, ip etc

Mais informações nginx

    
por 24.02.2014 / 13:46
1
    # Default VirtualHost
    include /www/conf.d/nginx/default.conf;

    # conf.d is empty anyways
    #include /etc/nginx/conf.d/*.conf;

    # VirtualHosts
    include /www/conf.d/nginx/*;

"default.conf" é incluído e, em seguida, é incluído novamente em /www/conf.d/nginx/*

Eu removi o primeiro include e renomeei "default.conf" para "_default.conf" para que o arquivo seja o primeiro a ser incluído no wildcard include.

    
por 24.02.2014 / 14:07