我有一个使用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和服务器名称?
答案 0 :(得分:3)
首先,您的Apache配置可能会设置为回退到客户端为SERVER_NAME提供的HTTP_HOST(有关详细信息,请参阅UseCanonicalName和this SO answer上的文档)。因此,尽管这两者相匹配,但这两个事实并不是一个问题(除非您的代码依赖于该值)。
其次,这似乎有人为baidu.com(中国非常受欢迎的搜索引擎)配置了他们的DNS,指向您的服务器。很难说为什么......