我在一個非常低流量的網站上看到了一些例外情況。例外情況如下所示:如何在Rails 3.1中處理丟失的主機頭文件
Missing host to link to! Please provide the :host parameter,
set default_url_options[:host], or set :only_path to true
actionpack (3.1.1) lib/action_dispatch/http/url.rb:25:in `url_for'
-------------------------------
Request:
-------------------------------
* URL : http:///
爲了清楚起見,刪除了這部分內容,但沒有其他重要的識別細節。例如沒有用戶代理或引用者。看起來正在發生的是這些是缺少Host
標頭的HTTP/1.0請求。現在我很奇怪甚至發生了這個異常,因爲所討論的域名是由使用301的nginx規範化的,因此如果不使用正確的域名,甚至不可能到達Rails應用程序。
我不明白爲什麼Rails會依賴於這個頭文件,因爲Nginx似乎應該通過更可靠的規範域,但是我對Rack內部機制並不熟悉。如果任何人有任何指導如何最好地解決這個問題,我將不勝感激。
- Rails/Rack是否有很好的理由取決於這個頭?
- 這裏有可能是一個機架bug嗎?
- 我應該用中間件注入頭部嗎?
- 我應該在Rails中篡改一些東西來壓制它嗎?
- 我應該配置Nginx拒絕HTTP/1.0請求嗎?
我們釋放了我們的安全審計機器人,他們通過HTTP/1.0請求產生了大量的這些異常。仍在尋求解決。 – whatbird