J'ai configuré un serveur proxy inverse dans un service azur en utilisant des règles de réécriture IIS et le module Application Request Routing (selon les instructions). aquí . Tout fonctionne bien, sauf les appels vers les points de terminaison que j'ai créés pour télécharger des fichiers mp4. Ces points finaux peuvent servir un contenu partiel lorsque la requête contient l'en-tête Range. Le problème que j'ai est que lorsque j'appelle le serveur directement, il répond correctement avec 206 (contenu partiel) et la plage correcte d'octets, mais parfois, lorsque j'appelle les points finaux par le biais du serveur proxy, il répond avec un 200, et le contenu complet du fichier, ce qui provoque des erreurs dans la lecture vidéo dans Chrome.
Ejemplo: En frappant le serveur directement avec une requête comme celle-ci :
GET server.domain.com/api/adFile/fileName Avec en-tête : Plage : bytes=168-3922822
Je reçois correctement une réponse de 206. Voici quelques-uns des en-têtes pertinents de la réponse :
- Cache-Control : no-cache
- Pragma : no-cache
- Content-Length : 3922655
- Content-Type : video/mp4
- Content-MD5 : f1+K8OT8TEjvtlPU5iUY8a==
- Content-Range : bytes 168-3922822/3922823
- Expire : -1
- Modifié en dernier lieu : Tue, 16 Feb 2016 15:46:46 GMT
- ETag : "0x8D336E86040C217"
- Serveur : Microsoft-IIS/8.0
- X-AspNet-Version : 4.0.30319
- X-Powered-By : ASP.NET
Lorsque l'on frappe le serveur à travers le proxy inverse, avec une requête comme celle-ci :
GET proxy.domain.com/api/adFile/fileName Avec en-tête : Plage : bytes=168-3922822
Je reçois à tort un code d'état 200 et le contenu complet du fichier. Voici les en-têtes pertinents de cette réponse :
- Cache-Control : no-cache
- Pragma : no-cache
- Content-Length : 3922823
- Content-Type : video/mp4
- Content-MD5 : f1+K8OT8TEjvtlPU5iUY8a==
- Expire : -1 Last-Modified : Tue, 16 Feb 2016 15:46:46 GMT
- ETag : "0x8D336E86040C217"
- Serveur : 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-t-il un moyen de modifier le comportement du proxy pour qu'il corresponde à celui du serveur principal (c'est-à-dire renvoyer uniquement le contenu partiel demandé) ? Il semble qu'il mette en cache le contenu du fichier et le serve en totalité lorsque la plage d'octets demandée est proche de la taille totale du fichier.