Nginx出現10055錯誤問題


Nginx在配置后遇到了socket問題:

[alert] 3336#3636: select() failed (10055: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full)

查了一些資料也不能確定問題的原因,只能嘗試修改一些參數配置:

proxy_buffering    on;          #開啟從后端被代理服務器的響應內容緩沖
proxy_buffer_size  4k;          #設置從后端被代理服務器的響應內容緩沖區大小
proxy_buffers    8 1M;         #設置從被代理的后端服務器取得的響應內容緩沖區的大小和數量
proxy_busy_buffers_size  2M;       #高負荷下緩沖大小(proxy_buffers*2)
proxy_max_temp_file_size    0;     #當 proxy_buffers 放不下后端服務器的響應內容時,會將一部分保存到硬盤的臨時文件中,這個值用來設置最大臨時文件大小,默認1024M
                       #它與 proxy_cache 沒有關系。大於這個值,將從upstream服務器傳回。設置為0禁用。

因為Nginx配置再windows server2008上,為了保險起見,設置了注冊表中的兩個值:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/ Services/TCPIP/Parameters  注冊表子鍵並創建名為TcpTimedWaitDelay 的新 REG_DWORD 值 建議值:最小值為 0x1E,它將等待時間設置為 30 秒
描述:確定 TCP/IP 可釋放已關閉連接並重用其資源前,必須經過的時間。關閉和釋放之間的此時間間隔通稱 TIME_WAIT 狀態或兩倍最大段生命周期(2MSL)狀態。
此時間期間,重新打開到客戶機和服務器的連接的成本少於建立新連接。
減少此條目的值允許 TCP/IP 更快地釋放已關閉的連接,為新連接提供更多資源。如果運行的應用程序需要快速釋放和創建新連接,而且由於 TIME_WAIT 中存在很多連接,導致低吞吐量,則調整此參數。
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/ Services/TCPIP/Parameters   注冊表子鍵並創建名為 MaxUserPort 的新 REG_DWORD 值
描述:確定在應用程序從系統請求可用用戶端口時,TCP/IP 可指定的最高端口號
MaxUserPort 的新 REG_DWORD 值。 停止並重新啟動系統。 缺省值:無 建議值:至少十進制 32768。
注:當在 Windows NT 或 Windows 2000 操作系統上調整 WebSphere Application Server 時,同時使用這兩個參數。

最后還調整了系統磁盤的虛擬內存

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM