Nginx가 활성화 된 사이트에서 사이트를 선택하지 않습니까?


103

10 시간이 넘는 연구 끝에 왜 이것이 작동하지 않는지 알지 못했습니다! 내 로컬 호스트를 / etc / nginx / sites-enabled / default에있는 내 사이트 사용 폴더로 이동하려고합니다.

사이트에서 사용할 수있는 폴더의 심볼릭 링크입니다. 다음 구성을 사용할 때 localhost : 8080을 내 주소로 사용하여 "연결할 수 없음"이 표시됩니다.

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

사용 가능한 사이트 (/ 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;
    }
}

nginx.conf에서 사용할 수있는 사이트의 관련 정보를 입력하면이 작업을 수행 할 수 있습니다. 왜 이런 방식으로 작동하지 않는지 알 수 없습니다.

감사!


2
심볼릭 링크가 끊어지지 않았습니까? LS -l을 / etc / nginx를 / 사이트 활성화 /
catalin.costache

1
그래, 난 두 번, 여전히 운이 심볼릭 링크를 확인하지 않았다
Discorick


답변:


196

나는 같은 문제가 있었다. 실수로 심볼릭 링크와 함께 상대 경로를 사용했기 때문입니다.

전체 경로를 사용 하셨나요? 예 :

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

나를 위해 이것은 또한 그것을 고쳤습니다! 감사!
Sander Versluys 2013

4
내 생명을 구 해주셔서 감사합니다!
MatTheCat

4
상대 링크가 아닌 상대 링크의 잘못된 경로에 문제가있을 수 있습니다. 예를 들어 링크가 ../한 디렉토리 위로 이동하는 것으로 시작하지 않으면 을 입력 sites-available합니다. cat심볼릭 링크를 사용하고 출력을 얻을 수 있다면 Nginx는 @Hannes가 말한대로 읽어야합니다. 절대 경로를 사용하면 잘못된 경로를 수행하기가 훨씬 더 어려워집니다.
Bryson 2014 년

파일의 절대 경로를 가져 오는 명령 줄 도구가 없습니까?

이것이 문제라는 것을 믿을 수 없습니다. 이것을 확인하려고 생각하지 않았을 것입니다! 감사!
phouse512

35

다음에서 변경 :

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

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

내 문제를 해결


2
Ubuntu 16.xx에서 저에게도 문제를 해결했습니다
Jan Wiemers

2
어떻게 알았어? 그것은 나를 위해 일하지만,이 명확하지 않다
afarley

2
이것은 nginx 및 Docker로 재생할 때 나를 위해 수정되었습니다.
Eugen

1
ditto, ubuntu / trusty64 이미지에서 수정 됨
Bryan A

2
그것은 나에게 문제였습니다! 그러나 제 경우에는 * .conf를 찾고 있었고 내 경우에는 다른 결말이있었습니다. 미친 나는 이것에 시간을 낭비했다!
Nigel 19

16

포함 sites-available/default에서 sites-enabled/default. 한 줄만 필요합니다.

에서 sites-enabled/default(새로운 설정 버전?) :

포함 경로가 포함 된 파일에 상대적인 것 같습니다.

include sites-available/default;

include설명서를 참조하십시오 .


특정 버전의 nginx는 포함 된 파일의 상대 경로가있는 단일 행을 사용하여 순전히 다른 파일에 대한 포함 / 링크를 허용한다고 생각합니다. (적어도 그것이 새로운 nginx 버전이 그것들을 망가 뜨리기 전까지 내가 사용하고있는 "상속 된"설정 파일에서 보이는 것과 같습니다.)

에서 sites-enabled/default(구 설정 버전?) :

포함 경로가 현재 파일에 상대적인 것 같습니다.

../sites-available/default
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.