【发布时间】:2019-04-11 19:06:05
【问题描述】:
在我的 Rails 生产网站上,我有时会遇到十几个错误,如下所示:
一个 ActionController::UnknownHttpMethod 发生在 #:
TRACK,接受的 HTTP 方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT、PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK、UNLOCK、VERSION-CONTROL、REPORT、CHECKOUT、CHECKIN、UNCHECKOUT 、MKWORKSPACE、更新、标签、合并、基线控制、MKACTIVITY、ORDERPATCH、ACL、搜索、MKCALENDAR 和补丁
我想这是当机器人使用 Rails 无法处理的 HTTP 方法访问我的网站时(在我的情况下,主要是 OPENVAS、TRACK、DEBUG、TRACK 和 INDEX,还有像 WMIXLVXM 这样的奇怪方法。
有没有办法以任何方式静音这些消息?我仍然不确定这是 Rails 问题还是 Nginx 问题。
我正在使用自定义控制器向用户呈现自定义错误页面:
Rails.application.routes.draw do
%w(404 500).each do |status|
match status, :to => 'errors#show', :status => status, :via => :all
end
...
end
class ErrorsController < ApplicationController
def show
status = params[:status] || 500
@title = "Error"
render(:status => status, :template => "errors/show.html.erb")
end
end
但我的自定义控制器可能不会导致错误?
感谢您的帮助。
【问题讨论】:
-
您是否尝试过使用此要点中的代码:gist.github.com/remvee/600569?
-
是的,但该线程是 9 年前开始的。不确定它是否仍然有效...
标签: ruby-on-rails http nginx