我想從Heroku上運行的Rails應用程序中的ruby中的http響應標頭中刪除服務器信息,但卡住了。檢查響應頭給我:如何從我的Rack應用程序中刪除「服務器」HTTP響應標頭
Server:thin 1.5.0 codename Knife
任何人都可以點我在正確的方向?
我想從Heroku上運行的Rails應用程序中的ruby中的http響應標頭中刪除服務器信息,但卡住了。檢查響應頭給我:如何從我的Rack應用程序中刪除「服務器」HTTP響應標頭
Server:thin 1.5.0 codename Knife
任何人都可以點我在正確的方向?
這個Server
頭部在組裝響應時是set by the Thin server。 A recent commit adds the ability to set the Server
to something else,但它看起來並不像你可以完全移除它。
一兩件事你可以做的是設置Thin::VERSION
contsant到nil
,這導致沒有Server
頭的值被髮送:
Thin.send :remove_const, :SERVER
Thin::SERVER = nil
第一行是爲了避免將產生時警告改變一個常數。現在當Thin嘗試設置Server
標題時,它看到它是nil
和skips it,因此根本沒有設置標題。
謝謝馬特。出於某種原因,這對我來說似乎有些ha to。我剛剛找到了一個使用Rack中間件的解決方案(現在會發布這個),我更喜歡這個解決方案。 –
@JonasGrau我同意這有點破解,但添加'Server'頭部的代碼幾乎被「硬編碼」爲Thin,所以我不知道如何控制它。我會有興趣看到你的中間件解決方案 - 據我所知,在所有中間件已經運行並且獨立於Rack之後添加了頭部,所以我不認爲你可能會影響中間件的頭部。 – matt
http://stackoverflow.com/questions/10323331/remove-unnecessary-http-headers-in-my-rails-answers – 2012-12-03 22:15:26
@slivu在所有Rack中間件返回後,「服務器」標題由Thin添加,您鏈接的問題僅涉及刪除應用程序添加的其他標頭。 (另一個建議使用nginx去掉頭文件的答案可以工作,但不能在Heroku雪松堆棧上。) – matt