Nginx não está pegando site em sites habilitados?

103

Depois de mais de 10 horas de pesquisa, não descobri por que isso não funciona! Estou tentando mover meu localhost para minha pasta habilitada para sites que está em / etc / nginx / sites-enabled / default.

É um link simbólico da pasta de sites disponíveis. Ao usar a seguinte configuração, recebo "não foi possível conectar" usando localhost: 8080 como meu endereço

nginx.conf (/usr/local/nginx/conf/nginx.conf):

user  www-data;
worker_processes  2;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    include /etc/nginx/sites-enabled/*; 
}

sites disponíveis (/ etc / nginx / sites-available / default):

server {
  listen   8080;
  root /home/myusername/myown/customdirectory;
  index index.php index.html index.htm;
  server_name localhost;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }


    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/www;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Posso fazer isso funcionar se colocar as informações relevantes dos sites disponíveis no nginx.conf, mas não consigo descobrir por que não funciona dessa maneira?

Obrigado!

Discorick
fonte
2
Tem certeza de que o link simbólico não está quebrado? ls -l / etc / nginx / sites-enabled /
catalin.costache
1
Sim, verifiquei o link simbólico, ainda sem sorte
Discorick,
veja também: askubuntu.com/questions/1195067/… .
Chris Halcrow

Respostas:

198

Eu tive o mesmo problema. Foi porque eu acidentalmente usei um caminho relativo com o link simbólico.

Tem certeza de que usou caminhos completos, por exemplo:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Sam
fonte
Para mim, isso também consertou! Obrigado!
Sander Versluys
4
Obrigado por salvar minha vida!
MatTheCat
4
Pode ser um problema com um caminho incorreto no link relativo mais do que ser um link relativo. Por exemplo, se o seu link não começar com ../para percorrer um diretório, digite sites-available. Se você puder fazer cato link simbólico e obter a saída, o Nginx também deve lê-lo como @Hannes disse. Usar um caminho absoluto simplesmente torna um caminho incorreto muito mais difícil de fazer.
Bryson
não existe uma ferramenta de linha de comando para obter o caminho absoluto de um arquivo?
Não posso acreditar que esse foi o problema. Não teria adivinhado para verificar isso! Obrigado!
phouse512
36

Mudando de:

include /etc/nginx/sites-enabled/*; 

para

include /etc/nginx/sites-enabled/*.*; 

consertou meu problema

Roy Robles
fonte
2
corrigiu o problema para mim também no Ubuntu 16.xx
Jan Wiemers
2
como você descobriu isso? Funcionou para mim, mas não é óbvio
afarley
2
isso corrigido para mim ao jogar com nginx e Docker.
Eugen
1
idem, corrigi-lo na imagem ubuntu / trusty64
Bryan A
2
Esse foi o problema para mim! Mas no meu caso, ele estava procurando por * .conf e o meu tinha um final diferente. Louco eu perdi horas com isso!
Nigel
16

Incluir sites-available/defaultem sites-enabled/default. Requer apenas uma linha.

Em sites-enabled/default(nova versão de configuração?):

Parece que o caminho de inclusão é relativo ao arquivo que o incluiu

include sites-available/default;

Veja a includedocumentação .


Acredito que certas versões do nginx permitem incluir / vincular a outros arquivos simplesmente por ter uma única linha com o caminho relativo ao arquivo incluído. (Pelo menos é o que parecia em alguns arquivos de configuração "herdados" que tenho usado, até que uma nova versão do nginx os quebrou.)

Em sites-enabled/default(versão de configuração antiga?):

Parece que o caminho de inclusão é relativo ao arquivo atual

../sites-available/default
Joel Purra
fonte