![VirtualHost 中的更改未生效](https://linux22.com/image/733022/VirtualHost%20%E4%B8%AD%E7%9A%84%E6%9B%B4%E6%94%B9%E6%9C%AA%E7%94%9F%E6%95%88.png)
我查看了本网站上的不少帖子,这些帖子帮助我在 apache 中配置 VirtualHost,以将传入的主机头反向代理到正确的内部 Web 服务器。
但是,当我更改文件 httpd-vhosts.conf 中的设置时,它需要几个小时,有时甚至几天才能真正显示更改。显然,这使得测试变得不可能。例如,这是有效的:
<VirtualHost *:*>
ProxyRequests On
ProxyPreserveHost On
ServerName www.mydomain.com
ProxyPass / http://192.168.1.211
ProxyPassReverse / http://192.168.1.211
</VirtualHost>
但如果我将其改为这样:
<VirtualHost *:*>
ProxyRequests On
ProxyPreserveHost On
ServerName www.mydomainthatdoesnotexist.com
ProxyPass / http://192.168.1.211
ProxyPassReverse / http://192.168.1.211
</VirtualHost>
它仍然使用www.mydomain.com。
为了尝试让 Apache 重新读取更改,我运行了httpd -k 重新启动和httpd -k 停止/httpd -k 启动,但它们没有任何效果。只有在几个小时后,变化才会真正发生。
即使我更改 Virtualhost 块中的 IP,它仍然会转到 192.168.1.211:
<VirtualHost *:*>
ProxyRequests On
ProxyPreserveHost On
ServerName www.mydomain.com
ProxyPass / http://192.168.1.212
ProxyPassReverse / http://192.168.1.212
</VirtualHost>
什么命令会让 apache 配置反映这些更改?似乎有东西被缓存了?