我在 Ubuntu 14.04.3 LTS 上安装了标准 Apache/2.4.7。它有几个虚拟主机。
我通过a2ensite
新旧配置将此虚拟主机的旧配置更改为a2dissite
新配置。内容并不重要,但为了完整性,我将包括它们:
old-thing.conf
进行了重定向
<VirtualHost *:80>
ServerName thing.mysite.com
Redirect permanent / http://otherthing.mysite.com/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
new-thing.conf
反向代理
<VirtualHost *:80>
ServerName thing.mysite.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://123.123.123:80/
ProxyPassReverse / http://123.123.123:80/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
我已经重启了 Apache。运行时apachectl -S
我看到:
port 80 namevhost thing.mysite.com (/etc/apache2/sites-enabled/new-thing.conf:1)
这告诉我 Apache 正在使用新的配置文件。但是当我获取域时,我看到的重定向与 中指定的一样old-thing.conf
。
$ curl -v http://thing.mysite.com
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: thing.mysite.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 23 Mar 2016 18:36:34 GMT
* Server Apache/2.4.7 (Ubuntu) is not blacklisted
< Server: Apache/2.4.7 (Ubuntu)
< Location: http://thing.mysite.com/
< Content-Length: 329
< Content-Type: text/html; charset=iso-8859-1
<
< etc...
我很困惑。旧配置早已消失。我重启了 Apache,客户端中没有缓存,因为我使用的是 curl。还有另一个测试虚拟主机(显示为apache -S
)也无法识别。发生了一些奇怪的事情。它是否以某种方式缓存了旧配置?
我不明白它如何使用旧的配置。
有任何想法吗?