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!


2
Czy jesteś pewien, że łącze symboliczne nie jest uszkodzone? ls -l / etc / nginx / sites-enabled /
— catalin.costache

1
Tak, dwukrotnie sprawdziłem
— łącze


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

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.