2016-10-10 123 views
1

我在nginx上運行清漆作爲ubuntu上的代理,每隔幾天我就會收到(24:太多打開的文件)錯誤。 重新啓動nginx解決了這個問題。 在研究了這個錯誤之後,我發現常見的解決方案是在nginx.conf中增加worker_rlimit_nofile。 我覺得這不是一個真正的解決方案,因爲我設定的限制可能會達到。Nginx與清漆錯誤:失敗(24:太多打開的文件)

爲什麼nginx讓這些文件(我相信這些是套接字)打開?以及我的情況會有什麼解決方案?

UPDATE:

我只注意到有當我運行lsof的數百清漆插座打開。我相信我的問題是這些套接字沒有關閉。

回答

0

當您的服務器是Web服務器時,增加服務器上打開的文件的標準最大數量是一種很好的做法,這同樣適用於臨時端口的數量。

我想打開的文件的默認數量爲1024來說太小了清漆

我將它設置爲131072

ulimit -n 131072

+0

感謝本傑明。我想知道爲什麼這些插座保持開放。我幾天前停止了流量到清漆服務器,我仍然看到這些插座打開並得到相同的錯誤(24:太多打開的文件) – guyyug

+0

我不是清漆開發人員,但我認爲每個清漆線程管理一個插座,因爲清漆產生大量線程(沒有傷害,它被優化),它需要大量的套接字。如果你看清漆服務配置,你應該看到'#打開文件(通常爲1024,這對於清漆太小) ulimit -n $ {NFILES:-131072}' –

相關問題