我已经使用 IIS 重写规则和应用程序请求路由模块在 azure 云服务中设置了一个反向代理服务器(根据此处的说明。除了调用我为下载 mp4 文件而创建的端点外,一切都运行良好。这些端点当请求包含 Range 标头时,可以提供部分内容。我遇到的问题是,当我直接点击服务器时,它会正确响应 206(部分内容)和正确的字节范围,但有时当我点击端点通过代理服务器,它以 200 和完整的文件内容响应,这会导致 Chrome 中的视频播放错误。
示例: 当使用这样的请求直接访问服务器时:
GET server.domain.com/api/adFile/fileName with header: Range: bytes=168-3922822
我正确地收到了 206 响应。以下是响应中的一些相关标头:
当通过反向代理访问服务器时,请求如下:
GET proxy.domain.com/api/adFile/fileName with header: Range: bytes=168-3922822
我错误地收到了 200 状态代码和完整的文件内容。以下是该响应的相关标头: