使用 nginx 服务器块创建子域名返回“未找到服务器”

使用 nginx 服务器块创建子域名返回“未找到服务器”

这是一个我无法解决的问题。

我在 DigitalOcean 上有一个 VPS,手动安装了一个 LEMP 堆栈,并且我的域名是 hover.com

如果你访问我的服务器,一切似乎都正常地点。但我尝试配置两个东西,但根本不起作用。

首先,我尝试配置一个新的子域名(blog.erzei.net),但当我尝试在浏览器(任何浏览器)中访问该地址时,它返回“未找到”。即使我尝试

 curl -I blog.erzei.net

它返回“无法解析主机”,尽管 erzei.net 工作正常。我不知道这是否与域名注册商有关,或者是 nginx 配置问题。据 Hover 支持告诉我,我从注册商配置的任何重定向都不起作用,因为我使用的是 DigitalOcean 的 DNS。所以,我认为我必须从我的 nginx 配置中配置每个新子域。

服务器块的代码如下,位于 sites-available 的默认配置文件中主块之后:

server {
    listen 80;

    server_name blog.erzei.net;

    root /example/directory.net;
    index index.html index.htm;

    location / {
            try_files $uri $uri/ =404;
    }
}

服务器的主要块是:

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

    root /main/directory.net

    index index.php index.html index.htm;

    server_name erzei.net www.erzei.net;

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

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /var/www/html;
    }
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}

第二个问题是 www 到非 www 的重定向也不起作用。可能与我的第一个问题有关。如果我输入 www.erzei.net,我会在浏览器中收到“找不到服务器”响应。配置再次位于我的 nginx 默认配置文件中。

server {
    server_name www.erzei.net;
    return 301 $scheme://erzei.net$request_uri;
}

我从官方 nginx 文档、wiki、DigitalOcean 论坛和这里进行了大量研究。有人能帮助我吗?谢谢。

答案1

正如问题评论中提到的,我需要在 DigitalOcean 上编辑一些 DNS 记录,而不是在注册管理中。

似乎我在研究过程中错过了这个链接,希望它能帮助其他人。

https://www.digitalocean.com/community/tutorials/how-to-set-up-and-test-dns-subdomains-with-digitalocean-s-dns-panel

相关内容