为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
ibeautiful 2022-08-24 10:42:13
我有一个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)})
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

我相信你只需要将 FlushInterval 设置为负数

FlushInterval 指定在复制响应正文时要刷新到客户端的刷新间隔。如果为零,则不执行定期刷新。负值表示在每次写入客户端后立即刷新。当 ReverseProxy 将响应识别为流式响应,或者其 ContentLength 为 -1 时,将忽略 FlushInterval;对于此类响应,写入操作将立即刷新到客户端。

proxy := httputil.NewSingleHostReverseProxy(url)
proxy.FlushInterval = -1


查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信