Nginx 不检查启用站点的服务器块

Nginx 不检查启用站点的服务器块

我已经设置了 nginx,但正在努力设置服务器块。我在 /etc/nginx 中创建了 sites-available 和 sites-enabled 文件夹。之后,我创建了一个名为我想要设置的子域的文件,并输入以下内容:

subdomain.mydomain.com(当然替换为我的真实域名)

upstream subdomain.mydomain.com {
        server 127.0.0.1:1234;
        keepalive 30;
}

server {
        listen 80;
        listen [::]:80;

        server_name subdomain.mydomain.com;

        access_log off;
        error_log /var/log/nginx/subdomain.mydomain.com-error.log crit;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $http_host;
                proxy_set_header X-NginX-Proxy true;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass http://subdomain.mydomain.com;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_cache_bypass $http_upgrade;
        }
}

然后我运行了以下命令:

ln -s /etc/nginx/sites-available/subdomain.mydomain.com /etc/nginx/sites-enabled/
service nginx restart

Nginx 重新启动后没有出现问题,但是无法访问子域。当我将上述服务器块配置复制粘贴到我的 /etc/nginx/nginx.conf http 块中时,它完全正常工作。

我的问题:

为什么它没有从 sites-available 文件夹加载我的服务器块?我猜这是向 nginx 添加新网站的首选方式。

Nginx.conf:

https://ghostbin.com/paste/bfgqz

答案1

看起来您的发行版的 nginx 配置/etc/nginx/sides-enabled默认情况下根本不读取目录;您可能按照其他发行版的说明进行设置。您的 nginx 查找配置文件的唯一位置是/etc/nginx/conf.d/,如您的 中的此行所示nginx.conf

    include /etc/nginx/conf.d/*.conf;

因此,您应将配置文件移动到/etc/nginx/conf.d/subdomain.mydomain.com.conf(请注意.conf后缀),或更改 nginx 主配置以包含 sites-enabled 文件夹中的文件(不建议,因为您的发行版的包管理器可能会在未来的更新中覆盖它)。

相关内容