主域和子域是混杂的

时间:2012-04-23 18:25:22

标签: apache subdomain lamp linode

我的主要域名www.mysite.com的网站以前运作良好。 (我在这里使用mysite来隐藏我的实际域名)。它是linode中的LAMP服务器,使用指南http://library.linode.com/lamp-guides/ubuntu-10.04-lucid进行设置。 我想在我的主机上为另一个虚拟主机添加sub.mysite.com。 我跟着http://davidpodley.com/2010/02/11/setting-up-subdomains-in-linode-and-apache/,然后跟着

a2ensite sub.mysite.com
/etc/init.d/apache2 restart

www.mysite.com的一些用户将访问sub.mysite.com而不是www.mysite.com。 我可以在/srv/www/sub.mysite.com/logs/access.log中找到它们并告诉我这个问题。他们只能访问www.mysite.com。但是,它在我的电脑上运行良好。

为什么www.mysite.com的用户会访问sub.mysite.com?任何人都可以帮助我吗?

一些信息:

我在24小时前在A记录中添加了sub: 我的A记录是:

Hostname IP Address TTL Options
         96.126.98.96    Default    Edit | Remove
sub      96.126.98.96    Default    Edit | Remove
mail     96.126.98.96    Default    Edit | Remove
www      96.126.98.96    Default    Edit | Remove

我服务器的主机名是mysite,而我服务器的/ etc / hosts是

127.0.0.1 localhost.localdomain localhost
96.126.98.96 mysite.mysite.com mysite

apache2ctl -S:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
         default server mysite.com (/etc/apache2/sites-enabled/mysite.com:10)
         port 443 namevhost mysite.com (/etc/apache2/sites-enabled/mysite.com:10)
*:80                   is a NameVirtualHost
         default server sub.mysite.com (/etc/apache2/sites-enabled/sub.mysite.com:1)
         port 80 namevhost sub.mysite.com (/etc/apache2/sites-enabled/sub.mysite.com:1)
         port 80 namevhost mysite.com (/etc/apache2/sites-enabled/mysite.com:1)

/etc/apache2/sites-enabled/mysite.com:

<VirtualHost *:80>
     ServerAdmin mysite@gmail.com
     ServerName mysite.com
     ServerAlias www.mysite.com
     DocumentRoot /srv/www/mysite.com/public_html/
     ErrorLog /srv/www/mysite.com/logs/error.log
     CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>

<VirtualHost *:443>
     SSLEngine On
     SSLCertificateFile /etc/apache2/ssl/apache.pem
     SSLCertificateKeyFile /etc/apache2/ssl/apache.key

     ServerAdmin mysite@gmail.com
     ServerName mysite.com
     ServerAlias www.mysite.com
     DocumentRoot /srv/www/mysite.com/public_html/
     ErrorLog /srv/www/mysite.com/logs/error.log
     CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>

/etc/apache2/sites-enabled/sub.mysite.com:

<VirtualHost *:80>
     ServerAdmin mysite@gmail.com
     ServerName sub.mysite.com
     ServerAlias www.sub.mysite.com
     DocumentRoot /srv/www/sub.mysite.com/public_html/
 #    DocumentRoot /srv/www/mysite.com/public_html/sub
     ErrorLog /srv/www/sub.mysite.com/logs/error.log
     CustomLog /srv/www/sub.mysite.com/logs/access.log combined
</VirtualHost>

谢谢!

1 个答案:

答案 0 :(得分:0)

它已经解决了。 有些用户直接使用IP访问我的主域名网站。 在apache2ctl -S结果中,我们可以看到

default server sub.mysite.com

根据apache的解释,配置文件中的第一个具有最高优先级,可以看作是默认服务器或主服务器。 在我的服务器/ etc / apache2 / sites-enabled中,将mysite.com重命名为000mysite.com将使其在sub.mysite.com之前加载(在我的网站中,“sub”为“f *”)