Je pense que vous étiez confus par le tampon de réponse de vernis. Disons que le plus rapide que votre backend peut répondre avec une page de 100k pour une requête donnée est de 10 secondes, envoyant 10k chaque seconde. Sans vernis dans votre pile, la connexion du client obtient un tunnel directement à l'arrière, et le navigateur commence à recevoir des données en 1 seconde (le premier 10k, et commence à analyser, rendre, suivre <link>
étiquettes, etc). Avec le vernis dans votre pile, il attend que l'extrémité arrière envoie la page entière avant d'envoyer le premier octet au client. Donc, le client doit attendre 10 secondes avant de pouvoir commencer à rendre la page, en suivant les <link>
étiquettes, etc. Croyez-le ou non, c'est une bonne chose pour deux raisons principales. Premièrement, si cette réponse est cacheable, le client suivant n'aura pas à attendre 10 secondes pour que le back-end génère la réponse, le vernis le servira assez rapidement (ms, pas s). Si votre taux de réussite est élevé, ce que vous devez optimiser, le coût initial d'avoir à attendre le premier octet de la réponse rapporte beaucoup de dividendes dans les futurs hits de cache.Deux, disons qu'un téléphone portable sur un signal de cellule ponctuelle demande la même page 100k, mais il ne peut pas télécharger la page aussi vite que le backend peut la générer, il lui faut une minute entière pour recevoir la page 100k. Avec le vernis en place, apache ne doit pas perdre une connexion et enfiler pendant une minute entière (la plupart du temps inactif, attention à vous) pendant qu'il transmet lentement les données au client. Il envoie les données aussi rapidement que possible pour vernir, puis passe à la requête suivante tandis que vernis envoie les données lentement au client.
Pour les demandes qui ne sont pas susceptibles d'être mises en cache, vous pouvez configurer le vernissage via la VCL, si vous le souhaitez, au return (pipe)
, ce qui n'entraînera pas de mise en mémoire tampon des réponses. Il enverra les données directement de votre back-end au client dès qu'il le reçoit. Mais dans le tube default.vcl n'est pas utilisé.