Rails奇怪的主机报错(baidu.com)

时间:2016-05-12 19:24:07

标签: ruby-on-rails passenger

我有一个使用Apache和Passenger运行的rails应用程序和虚拟主机(在同一台服务器上运行的多个应用程序)

从3天前开始,我的日志充满了奇怪的错误:

Missing template users/login, application/login with {:locale=>[:en], :formats=>["Accept: */*"], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in:
* "/home/deployer/rails_apps/vantano/releases/20160318190203/app/views"
------------------------------- Request:

* URL        : http://www.baidu.com/
* HTTP Method: GET
* IP address : 222.186.21.107
* Parameters : {"controller"=>"users", "action"=>"login"}
* Timestamp  : 2016-05-12 18:14:12 UTC
* Server : eemvantano
* Rails root : /home/deployer/rails_apps/vantano/releases/20160318190203
* Process: 25133

现在,有views / users / login.erb.html,但奇怪的部分是URL。我的网站不是百度。将Env转储添加到日志中,更奇怪的事情:

------------------------------- Environment:

* HTTP_ACCEPT                                    : Accept: */*
* HTTP_HOST                                      : www.baidu.com
* HTTP_PROXY_CONNECTION                          : Keep-Alive
* HTTP_REFERER                                   : http://www.baidu.com/
* HTTP_USER_AGENT                                : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; WebSaver; .NET CLR 2.0.50727)
* HTTP_VERSION                                   : HTTP/1.1
* ORIGINAL_FULLPATH                              : /
* ORIGINAL_SCRIPT_NAME                           :
* PASSENGER_CONNECT_PASSWORD                     : [FILTERED]
* PATH_INFO                                      : /
* QUERY_STRING                                   :
* REMOTE_ADDR                                    : 222.186.21.107
* REMOTE_PORT                                    : 4362
* REQUEST_METHOD                                 : GET
* REQUEST_URI                                    : /
* ROUTES_37245440_SCRIPT_NAME                    :
* SCRIPT_NAME                                    :
* SERVER_NAME                                    : www.baidu.com
* SERVER_PORT                                    : 80
* SERVER_PROTOCOL                                : HTTP/1.1
* SERVER_SOFTWARE                                : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.16 OpenSSL/1.0.1f Phusion_Passenger/5.0.27

为什么百度被列为HOST和服务器名称?

1 个答案:

答案 0 :(得分:3)

首先,您的Apache配置可能会设置为回退到客户端为SERVER_NAME提供的HTTP_HOST(有关详细信息,请参阅UseCanonicalNamethis SO answer上的文档)。因此,尽管这两者相匹配,但这两个事实并不是一个问题(除非您的代码依赖于该值)。

其次,这似乎有人为baidu.com(中国非常受欢迎的搜索引擎)配置了他们的DNS,指向您的服务器。很难说为什么......