Nginx nie odbiera witryny z włączonymi witrynami?

105

Po ponad 10 godzinach poszukiwań nie wiem, dlaczego to nie działa! Próbuję przenieść mojego lokalnego hosta do mojego folderu z włączoną obsługą witryn, który znajduje się w / etc / nginx / sites-enabled / default.

JEST to łącze symboliczne z folderu z dostępnymi witrynami. Podczas korzystania z poniższej konfiguracji otrzymuję komunikat „nie można się połączyć”, używając adresu localhost: 8080 jako mojego adresu

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/*; 
}

site-available (/ 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;
    }
}

Mogę to uruchomić, jeśli umieszczę odpowiednie informacje z witryn dostępnych dla nginx.conf, po prostu nie mogę zrozumieć, dlaczego to nie działa w ten sposób?

Dzięki!

Discorick
źródło
2
Czy jesteś pewien, że łącze symboliczne nie jest uszkodzone? ls -l / etc / nginx / sites-enabled /
catalin.costache
1
Tak, dwukrotnie sprawdziłem
łącze
zobacz także: askubuntu.com/questions/1195067/… .
Chris Halcrow,

Odpowiedzi:

200

Miałem ten sam problem. To dlatego, że przypadkowo użyłem ścieżki względnej z dowiązaniem symbolicznym.

Czy na pewno użyłeś pełnych ścieżek, np .:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Sam
źródło
U mnie to też naprawiło! Dzięki!
Sander Versluys,
4
Dzięki za uratowanie mi życia!
MatTheCat,
4
Może to być problem z nieprawidłową ścieżką w odnośniku względnym bardziej niż w ogóle. Na przykład, jeśli twój link nie zaczyna się od, ../aby przejść w górę o jeden katalog, wpisz sites-available. Jeśli możesz catdowiązać symboliczne i uzyskać dane wyjściowe, Nginx powinien przeczytać to również, jak powiedział @Hannes. Korzystanie ze ścieżki bezwzględnej po prostu znacznie utrudnia wykonanie nieprawidłowej ścieżki.
Bryson
czy nie ma narzędzia wiersza poleceń do pobierania bezwzględnej ścieżki pliku?
Nie mogę uwierzyć, że to był problem. Nie zgadłbym, żeby to sprawdzić! Dzięki!
phouse512
39

Zmiana z:

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

do

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

naprawił mój problem

Roy Robles
źródło
2
naprawiono problem również dla mnie pod Ubuntu 16.xx
Jan Wiemers,
2
jak to wymyśliłeś? U mnie to zadziałało, ale nie jest to oczywiste
afarley
2
naprawiono to dla mnie podczas gry z nginx i Docker.
Eugen
1
ditto, naprawiono to na obrazie ubuntu / trusty64
Bryan A
2
To był problem dla mnie! Ale w moim przypadku szukał * .conf, a mój miał inne zakończenie. Szalony, straciłem nad tym godziny!
Nigel
16

Uwzględnij sites-available/defaultw sites-enabled/default. Wymaga tylko jednej linii.

W sites-enabled/default(nowa wersja konfiguracji?):

Wygląda na to, że ścieżka dołączania jest względna w stosunku do pliku, który ją zawiera

include sites-available/default;

Zobacz includedokumentację .


Uważam, że niektóre wersje nginx umożliwiają dołączanie / linkowanie do innych plików wyłącznie poprzez posiadanie pojedynczej linii ze względną ścieżką do dołączonego pliku. (Przynajmniej tak to wyglądało w niektórych „odziedziczonych” plikach konfiguracyjnych, których używałem, dopóki nowa wersja nginx ich nie zepsuła.)

W sites-enabled/default(starej wersji konfiguracji?):

Wygląda na to, że ścieżka dołączania jest względna w stosunku do bieżącego pliku

../sites-available/default
Joel Purra
źródło