如何在golang中实现反向代理以支持nginx渐进式下载?

我有一个golang网络服务器,可以从nginx获取视频文件。当我直接从html5标签调用nginx视频时,视频可以流畅地播放渐进式下载。通过渐进式下载,我的意思是随机搜索在没有任何特殊玩家逻辑的情况下工作。<video>


但是当我通过golang Web服务器调用它时,它使用golang NewSingleHostReverseProxy()类调用nginx链接,渐进式下载不起作用。


是否可以使用golang反向代理启用渐进式下载?


golang webserver 中反向代理的代码:


url, _ := url.Parse("http://nginx-server/")

proxy := httputil.NewSingleHostReverseProxy(url)

router.PathPrefix("/video").HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

        proxy.ServeHTTP(w, r)

})


ibeautiful
浏览 89回答 1
1回答

UYOU

我相信你只需要将 FlushInterval 设置为负数FlushInterval 指定在复制响应正文时要刷新到客户端的刷新间隔。如果为零,则不执行定期刷新。负值表示在每次写入客户端后立即刷新。当 ReverseProxy 将响应识别为流式响应,或者其 ContentLength 为 -1 时,将忽略 FlushInterval;对于此类响应,写入操作将立即刷新到客户端。proxy&nbsp;:=&nbsp;httputil.NewSingleHostReverseProxy(url) proxy.FlushInterval&nbsp;=&nbsp;-1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go