Eu configurei um servidor proxy reverso em um serviço de nuvem azul usando as regras de reconfiguração do IIS e o módulo de Roteiro de Solicitação de Aplicativo (de acordo com as instruções aqui . Tudo está funcionando bem, exceto para chamadas para os nós de extremidade que criei para fazer download de arquivos mp4. pode servir conteúdo parcial quando o pedido contém o cabeçalho do intervalo.O problema que estou tendo é que quando eu acertar o servidor diretamente, ele responde corretamente com 206 (conteúdo parcial) eo intervalo correto de bytes, mas às vezes quando eu bater o endpoints através do servidor proxy, ele responde com um 200, e todo o conteúdo do arquivo, o que provoca erros na reprodução de vídeo no Chrome.
Exemplo:
Ao atingir o servidor diretamente com uma solicitação como esta:
GET server.domain.com/api/adFile/fileName
Com cabeçalho: intervalo: bytes = 168-3922822
Eu recebo corretamente uma resposta 206. Aqui estão alguns dos cabeçalhos relevantes na resposta:
- Cache-Control: no-cache
- Pragma: no-cache
- Comprimento do conteúdo: 3922655
- Tipo de conteúdo: video / mp4
- Conteúdo-MD5: f1 + K8OT8TEjvtlPU5iUY8a ==
- Intervalo de conteúdo: bytes 168-3922822 / 3922823
- Expira em: -1
- Última modificação: Ter, 16 fev 2016 15:46:46 GMT
- ETag: "0x8D336E86040C217"
- Servidor: Microsoft-IIS / 8.0
- X-AspNet-Version: 4.0.30319
- X-Powered-By: ASP.NET
Ao atingir o servidor através do proxy reverso, com um pedido como este:
GET proxy.domain.com/api/adFile/fileName
Com cabeçalho: intervalo: bytes = 168-3922822
Eu recebo incorretamente um código de status 200 e o conteúdo completo do arquivo. aqui estão os cabeçalhos relevantes dessa resposta:
- Cache-Control: no-cache
- Pragma: no-cache
- Comprimento do conteúdo: 3922823
- Tipo de conteúdo: video / mp4
- Conteúdo-MD5: f1 + K8OT8TEjvtlPU5iUY8a ==
- Expira: -1 Última modificação: Ter, 16 Fev 2016 15:46:46 GMT
- ETag: "0x8D336E86040C217"
- Servidor: Microsoft-IIS / 8.5
- X-AspNet-Version: 4.0.30319
- X-Powered-By: ASP.NET
- X-Powered-By: ARR / 3.0
- X-Powered-By: ASP.NET
Existe alguma maneira que eu possa modificar o comportamento do proxy para coincidir com o comportamento do servidor principal (ou seja, retornar apenas o conteúdo parcial solicitado)? Parece que ele pode estar armazenando em cache o conteúdo do arquivo e atendendo a todos eles quando o intervalo de bytes solicitado está próximo do tamanho total do arquivo.