124

经过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/站点可用/默认):

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 中,我可以让它工作,我只是不明白为什么它不能这样工作?

谢谢!

4

3 回答 3

210

我有同样的问题。这是因为我不小心使用了符号链接的相对路径。

你确定你使用了完整的路径,例如:

ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
于 2013-01-01T04:22:22.860 回答
59

变化自:

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

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

解决了我的问题

于 2017-01-03T21:11:25.117 回答
16

包括sites-available/defaultsites-enabled/default. 它只需要一行。

sites-enabled/default(新配置版本?):

似乎包含路径是相对于包含它的文件

include sites-available/default;

请参阅include文档


我相信某些版本的 nginx 允许纯粹通过使用包含文件的相对路径的单行来包含/链接到其他文件。(至少在我一直使用的一些“继承”配置文件中是这样的,直到新的 nginx 版本破坏了它们。)

sites-enabled/default(旧配置版本?):

似乎包含路径是相对于当前文件的

../sites-available/default
于 2013-01-03T22:00:44.157 回答