我们在Apache 2.2(CentOS 6.latest)和Rails 3.2后面使用乘客4.0.59。
在/etc/httpd/conf/httpd.conf中,我们具有:
TraceEnable off
我们在httpd.conf中配置了一个虚拟主机,在/etc/httpd/conf.d/ssl.conf中配置了第二个虚拟主机,该虚拟主机已配置了Passenger。
我正在使用这种形式的命令进行测试:
curl -I -X {method} https://{host}/{resource}
...并看到以下行为:
当我通过http(即http://host.domain.com/images/foo.png)跟踪静态图像时,得到405响应(如预期)。
当我通过https跟踪相同的静态映像时,意味着它通过了配置有Passenger的虚拟主机,我得到405(按预期)。
但是,当我在我们的应用程序中跟踪Rails服务时,例如https://host.domain.com/status.json,我收到200的有效数据响应。
我希望Apache可以关闭请求并返回405响应,甚至还没到达Passenger / Rails,但这没有发生。
我想念/误解了什么?
最佳答案
我想念/误解了什么?TraceEnable off
是要使用的正确指令,但是在配置中的其他位置可能还有另一个TraceEnable
指令。
您应该检查所有的apache配置文件,以确保没有其他TraceEnable
指令。
由于TraceEnable
指令可以在服务器配置或虚拟主机配置中使用,因此您可能只想将其添加到两者中。