Bind 将 subdomain.domain.com 指向 domain.com

Bind 将 subdomain.domain.com 指向 domain.com

因此,我使用 Bind 运行权威 DNS 服务器。

我经常添加子域名。不知为何,这次我添加的子域名指向 domain.com 而不是 subdomain.domain.com。我不明白为什么会发生这种情况。

我向 DNS 区域文件添加了一条新的 A 记录。它指向我所有其他子域指向的同一 IP 地址。我增加了序列号。我重新加载了绑定。

当我访问 subdomain.domain.com 时,我得到的是位于 domain.com 的所有内容。我现在已经尝试了两个子域。它们都指向 domain.com。我还检查了 syslog 文件中是否有任何绑定日志,但没有。

我做事的方式完全没有改变,所以我很困惑为什么会突然发生这种事。

我对 DNS 还比较陌生。有什么建议吗?

编辑:这是我针对相关子域的 nginx 服务器块。以及针对该域的 nginz 服务器块。

server {
    listen 80;
    server_name subdomain.domain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    include /etc/nginx/ssl;
    include /etc/nginx/cert;

    server_name subdomain.domain.com;

    root /home/jasonaburton/deployments/subdomain/current/public;

    access_log /var/log/nginx/subdomain.domain.com.access.log;
    error_log /var/log/nginx/subdomain.domain.com.error.log;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    include /etc/nginx/gzip;

    location ~* \.php$ {
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include         /etc/nginx/fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
        fastcgi_param APP_ENV 'env';

        add_header X-Frame-Options "DENY";
        add_header X-Content-Type-Options "nosniff";
        add_header X-XSS-Protection "1; mode=block";
        add_header Cache-Control "no-cache, max-age=0, must-revalidate, no-store, private";
    }
}

server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default_server;
    include /etc/nginx/ssl;
    include /etc/nginx/pulse-cert;

    server_name domain.com www.domain.com;

    root /home/jasonaburton/domain.com/current/web;

    access_log /var/log/nginx/www.domain.com.access.log;
    error_log /var/log/nginx/www.domain.com.error.log;

    index index.php;

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
        expires 24h;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    include /etc/nginx/gzip;

    location ~* \.php$ {
        fastcgi_pass        unix:/var/run/php5-fpm.sock;
        fastcgi_index       index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include             /etc/nginx/fastcgi_params;
        fastcgi_param       SCRIPT_FILENAME $document_root$fastcgi_script_name;
add_header Cache-Control "no-cache, max-age=0, must-revalidate, no-store";
    }
}

谢谢,杰森

答案1

尝试在监听后删除文本“default_server”并重新启动 nginx。如果这不会破坏任何东西,但修复了故障,那就太好了。

尝试其他方法 - 您是否已重新加载/重新启动 nginx,以便它能够看到特定的子域配置文件?此外,包含子域配置的文件的文件权限是否正确?

检查文件权限,仔细检查文件是否在正确的位置等,然后重新加载 nginx。

答案2

这要么是从 subdomain.domain.com 提供的网页重定向到 domain.com,要么是 nginx 服务器块配置问题,其中 nginx 未配置为正确提供 subdomain.domain.com 的内容。

尝试:

grep -R default_server /etc/nginx/sites-enabled/

和:

grep -R server_name /etc/nginx/sites-enabled/

(根据您的系统修改路径)以帮助查明问题。default_server 和 server_name 是应该在配置文件中的相关指令。

相关内容