2011-06-09 75 views
4

我在所有18臺服務器上配置了SSL(HTTPS)。所有18臺服務器使用SSL相互通信。一切工作正常。突然我得到這個錯誤:握手期間收到close_notify

"Received close_notify during handshake"

LOG ::@2011-06-03 03:36:17.372 [Log.class] ![LoadBalancer][com.somename.servlet][RequestServlet][callServlet] ==> [spnlapp01390.europe.intranet:8443/TCServer/TCHealthCheck] -> Reason : Received close_notify during handshake #3996073076

奇怪的是,應用程序重新啓動後,其工作正常。我不知道這個原因。在哪種情況下可能會發生?這是因爲網絡問題嗎?

回答

5

close_notify是SSL堆棧發送的指示終止連接的消息。如果沒有更多的數據來查看網絡追蹤等,就很難(如果可能的話)有一個確定的原因,爲什麼會發生這種情況。

2

我們發現與我們的服務器相同的問題,我們的服務器忙於處理每秒100個連接的情況。它適用於重新啓動服務器,但長壽情況下再次發出重複。你可能會經常看到這樣的情況,即節點(服務器和客戶端)位於網絡中的距離太遠而無法到達。

我們進行了硬件升級和服務器配置調整,如增加打開文件(linux)值,允許使用最大可能的端口,增加Web服務器允許的最大線程和連接。設置適當的SO和連接超時,然後管理客戶端資源(連接)重用和適當的客戶端關閉帶來了良好的控制。通過HTTP/HTTPS通信(如心跳)減少其他ping到服務器,用戶訪問前端應用程序以及其他一些緩存更新客戶端使場景更好。

我們仍然有相同的問題,如果性能較差的機器和Windows 7環境機器。

+0

我們必須同意一點,我們還必須考慮我們的應用程序這個問題。 無論您在服務器上提及的配置是否完全正確。但是如果我們從不同的角度思考,我們應該在服務器端有一些機制來一次控制客戶端請求。 – vivekj011 2012-01-03 11:43:25

+0

例如我們可以在服務器上保留一個入口點,如果服務器一次同時處理(比如100個)請求,則阻止客戶端請求一段時間。 因此,一旦100個進程中的任何一個釋放,服務器就可以接受下一個請求。 所以,在這些行上我們可以在服務器上構建一個入口點。 – vivekj011 2012-01-03 11:48:26

相關問題