Nginx从错误的根读取站点文件

时间:2017-12-21 22:33:46

标签: php ssl nginx https config

自从我在我的网站启用/默认配置中通过SSL设置HTTPS后,Nginx正在从/usr/share/www/html而非/var/www/html读取。在我的任何文件中都没有/usr/.../html的引用(当我使用grep -r时),所以我不知道为什么会发生这种情况。

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name MY_WEBSITE.TLD; # Before you ask, yes
    return 302 https://$server_name$request_uri;
    root /var/www/html;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/self-signed.conf;
    include snippets/ssl-params.conf;

    index index.html index.htm index.nginx-debian.html index.php;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

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

显然我已经定义了根。为什么不起作用?

2 个答案:

答案 0 :(得分:1)

您的配置描述了2个独立的服务器 - 而不是一台服务器上的2个端口。显然,您可以将它们包含在sites-available/中的单个文件中,但从技术上讲,它们是不同的独立服务器,您可以将每个server块拆分为不同的sites-available/配置文件

请记住,检查每台服务器的内容。端口80上有一台服务器,其中指定了root。一切都很好。

您在端口443上有另一台服务器。这是一个完全独立的服务器,而不是另一个端口上的同一台服务器。它没有指定root,因此nginx将回退到某个默认根位置,由编译时开关或特定于发行版的变量as described in this SO question确定。

答案 1 :(得分:0)

Aaaaand这一切都回到我指定php7.0-fpm的错误目录。因为它当然有!感谢@ Do not Panic和@Keven_Kinsey帮助我。它最终加载正确。