我有一台 Apache 服务器,它有一个虚拟主机和多个服务器别名,并且我访问网站时遇到访问速度缓慢的情况,具体取决于我使用的名称。
我的 httpd.conf 文件:
ServerName 192.168.1.11:80
<VirtualHost 192.168.1.11:80>
Alias /robots.txt /var/www/robots.txt
Alias /static/ /home/django/www/ERate/static/
<Directory /home/django/www/ERate/static>
Order deny,allow
Allow from all
</Directory>
<Location /admin>
order deny,allow
deny from all
allow from 192.168.1 127.0.0.1
</Location>
WSGIScriptAlias / /home/django/www/ERate/apache/django.wsgi
ServerName 192.168.1.11
ServerAlias webserver.internal.on-tech.com webserver www www.internal.on-tech.com www.data.on-tech.com data.on-tech.com
</VirtualHost>
当我尝试使用 192.168.1.11 访问服务器时,页面会在一两秒内加载,但如果我尝试使用其中一个别名访问它,则第一次访问页面需要 5 秒,下一次则需要 20 多秒。如果我在访问后等待几分钟,时间似乎会重置为 5 秒。
我认为问题出在 httpd.conf 上,因为如果我将服务器名称与其中一个别名切换,新的服务器名称将成为访问速度更快的地址。有人能解释为什么会出现这种速度减慢的情况以及我该如何修复它吗?
编辑:在 maliq 的建议下,我将相关行改为
ServerName webserver.internal.on-tech.com
ServerAlias webserver www www.internal.on-tech.com www.data.on-tech.com data.on-tech.com
问题仍然存在,使用 webserver.internal.on-tech.com 访问该网站的速度明显比访问任何别名的速度快。
该网站的 DNS 似乎正在运行(没有 DNS 错误),并且该服务器的 DNS 记录
webserver.internal.on-tech.com -> A record: 192.168.1.11
www.internal.on-tech.com -> CName: webserver.internal.on-tech.com
www.data.on-tech.com -> A record: 192.168.1.11
data.on-tech.com -> CName: www.data.on-tech.com
答案1
看来 VirtualHost 指令是问题所在。当我将 httpd.conf 更改为以下内容时,问题就消失了:
ServerName webserver.internal.on-tech.com
Alias /robots.txt /var/www/robots.txt
Alias /static/ /home/django/www/ERate/static/
<Directory /home/django/www/ERate/static>
Order deny,allow
Allow from all
</Directory>
<Location /admin>
order deny,allow
deny from all
allow from 192.168.1 127.0.0.1
</Location>
WSGIScriptAlias / /home/django/www/ERate/apache/django.wsgi