我们在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指令可以在服务器配置或虚拟主机配置中使用,因此您可能只想将其添加到两者中。

09-05 17:09