第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Go 中創(chuàng)建空閑超時?

在 Go 中創(chuàng)建空閑超時?

Go
慕容3067478 2021-09-27 14:57:15
我將 CloudFlare 用于我的一個高容量網站,它位于我的堆棧前面。問題是 CloudFlare 除了創(chuàng)建新連接外還保持空閑連接打開,這不是我可以更改的設置。當我讓 Varnish 或 Nginx 坐在前面監(jiān)聽端口 80 時,它們具有開箱即用的配置來掛斷空閑連接。這很好,直到我不得不在我的堆棧前面添加一個用 Go 編寫的代理。它使用net/http標準庫。我不是 Go 向導,但根據人們告訴我的內容,只有讀取和寫入超時設置,但不會掛斷空閑連接。現(xiàn)在我的服務器將充滿連接并死亡,除非我設置了設置的讀取和寫入超時,但問題是我的后端有時需要很長時間,并且導致良好的請求在不應該被切斷時被切斷。使用 Go http 處理空閑連接的正確方法是什么?編輯 1:更清楚地說,我正在使用httputil.NewSingleHostReverseProxy構建一個代理,它公開傳輸選項,但僅適用于上游。我遇到的問題是下游,需要在http.Server使用 ReverseProxy 作為處理程序的對象上設置它們。http.Server不暴露傳輸。編輯 2:我更喜歡空閑超時而不是讀取超時,因為后者適用于活動的上傳者。謝謝
查看完整描述

2 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

在 Go http 服務器中掛斷空閑連接的正確方法是設置讀取超時。


沒有必要設置寫超時來掛斷空閑客戶端。如果它會切斷響應,請不要設置或調整此值。


如果你有很長的上傳,那么使用連接狀態(tài)回調來實現(xiàn)單獨的空閑和讀取超時:


server.ConnState = func(c net.Conn, cs http.ConnState) {

    switch cs {

    case http.StateIdle, http.StateNew:

        c.SetReadDeadline(time.Now() + idleTimeout)

    case http.StateActive:

        c.SetReadDeadline(time.Now() + activeTimeout)

    }

}


查看完整回答
反對 回復 2021-09-27
  • 2 回答
  • 0 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號