DNS 缓存问题或 apache vhosts 混淆?

DNS 缓存问题或 apache vhosts 混淆?

我正在尝试从一个 ubuntu VPS 设置迁移到另一个,但遇到了子域问题,而我的旧服务器上没有这个问题。我不确定我的问题出在 DNS 记录还是 Apache 上。不幸的是,我无法访问旧服务器的 DNS 记录,只能访问新服务器的 DNS 记录

问题:

域名.comwww.域名.com
不显示新服务器上的代码,显示旧服务器上的代码,我希望这些 URL 显示代码/var/www/domainname.com.live

stage.domainname.com
工作正常,显示来自我的新服务器的代码,具体来说/var/www/stage.domainname.com.live

完整性检查:

  • 我没有 .htaccess 文件
  • 我已经检查 mod_rewrite 是否已启用
  • 以下网站已“启用”a2ensite
  • 5 天前,域名服务器已切换到我的新服务器

我的新服务器的 DNS 记录:

*.domainname.com        181.102.220.244 domainname.com  86400       A   
domainname.com        181.102.220.244 domainname.com  600         A 
stage.domainname.com    181.102.220.244 domainname.com  600         A   

来自我的新服务器的代码摘录:

文件 /etc/apache2/sites-available/domainname.com

<VirtualHost *:80>

    ServerName  domainname.com
    ServerAlias www.domainname.com

    DocumentRoot /var/www/domainname.com.live
    DirectoryIndex index.php

    ServerSignature Email

    <Directory "/var/www/domainname.com.live">
        RewriteEngine on
        RewriteBase /
        RewriteCond $1 !^(favicon\.ico|admin\.php|index\.php|assets|assets-uploaded|robots\.txt)
        RewriteRule ^admin/(.*)$ /admin.php?$1 [L]
        RewriteCond $1 !^(favicon\.ico|admin\.php|index\.php|assets|assets-uploaded|robots\.txt)
        RewriteRule ^(.*)$ /index.php?$1 [L]
    </Directory>

</VirtualHost>

文件 /etc/apache2/sites-available/stage.domainname.com

<VirtualHost *:80>

    ServerName  stage.domainname.com
    ServerAlias stage.domainname.com

    DocumentRoot /var/www/stage.domainname.com.live
    DirectoryIndex index.php

    ServerSignature Email

    <Directory "/var/www/stage.domainname.com.live">
        RewriteEngine on
        RewriteBase /
        RewriteCond $1 !^(favicon\.ico|admin\.php|index\.php|assets|assets-uploaded|robots\.txt)
        RewriteRule ^admin/(.*)$ /admin.php?$1 [L]
        RewriteCond $1 !^(favicon\.ico|admin\.php|index\.php|assets|assets-uploaded|robots\.txt)
        RewriteRule ^(.*)$ /index.php?$1 [L]
    </Directory>


</VirtualHost>

nslookup

    $nslookup domainname.com

    Non-authoritative answer:
    Name:   domain.com
    Address: oldServerIP

    $nslookup stage.domainname.com

    Non-authoritative answer:
    Name:   stage.domainname.com
    Address: newServerIP

答案1

您是否刚刚设置了它,并且旧服务器上有暂存域?nslookup 对所有域的显示是什么?所有记录是否都指向正确的服务器?

在我看来,这更像是 DNS 缓存问题,而不是 Apache 问题。

相关内容