1

我的主域名为 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>

谢谢!

4

1 回答 1

0

解决了。一些用户直接使用 IP 访问我的主域站点。在 apache2ctl -S 结果中,我们可以看到

default server sub.mysite.com

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

于 2012-04-24T06:54:47.317 回答