Захоўвайце ProxyFromEnvironment пры наладзе HTTP-транспарту Go
Захоўвайце выбар проксі з асяроддзя Go, наладжваючы тайм-аўты транспарту або пулы злучэнняў, замест таго каб замяняць стандартны варыянт полем Proxy з нулявым значэннем.
Стандартны DefaultTransport у Go усталёўвае Proxy на ProxyFromEnvironment. Асобна створаны &http.Transport{} мае пустую функцыю Proxy, і таму не выбірае ніякі проксі.
Гэтая розніца можа ўзнікнуць пасля дадання транспарту толькі дзеля змены тайм-аўту. Калі стандартны варыянт па-ранейшаму ўсталяваны, скапіруйце яго і змяніце патрэбнае поле:
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.ResponseHeaderTimeout = 15 * time.Second
client := &http.Client{
Transport: transport,
Timeout: 30 * time.Second,
}Копія захоўвае выбар проксі з асяроддзя і іншыя стандартныя налады транспарту. Праверка тыпу мяркуе, што праграма не замяніла DefaultTransport іншым RoundTripper.
Для транспарту, наўмысна створанага з нуля, усталюйце Proxy: http.ProxyFromEnvironment явна, калі гэта яго палітыка маршрутызацыі. Яўная функцыя ProxyURL выражае іншую палітыку: адзін выбраны пасярэднік.
Наладзьце транспарт да таго, як паралельныя запыты пачнуць яго выкарыстоўваць, а потым паўторна выкарыстоўвайце яго для нагрузкі. Змена агульнага стандартнага аб'екта можа паўплываць на не звязаных кліентаў.
Уласныя налады TLS адасобленыя. Адключэнне праверкі сертыфіката не патрабуецца для захавання выяўлення проксі, і яно змяніла б бяспеку кожнага адпаведнага HTTPS-запыту.