Ubuntu

綁定將 subdomain.domain.com 指向 domain.com

  • December 13, 2016

因此,我使用 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";
   }
}

謝謝,傑森

嘗試從偵聽後刪除文本“default_server”並重新啟動 nginx。如果這不會破壞任何東西,但可以解決錯誤,那就太好了。

其他嘗試 - 您是否重新載入/重新啟動 nginx 以便它看到特定的子域配置文件?另外,包含子域配置的文件的文件權限是否正確?

檢查文件權限,仔細檢查文件是否在正確的位置等,然後重新載入 nginx。

這將是從 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 是應該在配置文件中的相關指令。

引用自:https://serverfault.com/questions/820322