因此,我使用 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 是应该在配置文件中的相关指令。