Vernis contre autres procurations inverses

13

Je travaille avec une organisation qui a déployé Varnish en tant que proxy inverse de mise en cache pour tout son trafic Web. Leur composition de trafic est constituée de nombreux sites Web dynamiques générés par les clients, avec la collection habituelle d'actifs statiques suspendue.

Pendant que j'essaie d'aimer le vernis (je pense qu'il a une assez bonne architecture, en principe), j'ai du mal à le gérer et à résoudre les problèmes à mesure qu'ils surviennent, alors je me demande si c'est vraiment le bon choix. J'ai utilisé Squid dans le passé comme proxy inverse, mais pas dans le même genre de rôle, donc je n'ai pas de base de comparaison claire.

Ma question s'adresse aux personnes qui ont déployé du vernis en production ou l'ont sérieusement évalué par rapport aux alternatives: avez-vous respecté le vernis ou avez-vous fini par utiliser un autre proxy inverse? Quels ont été vos points clés pour rester avec ou changer, et si vous avez utilisé autre chose, qu'est-ce que vous avez fini par utiliser?

womble
la source
6
Le vernis est probablement votre meilleure solution. Mon conseil est de rejoindre les listes de diffusion et de vous impliquer avec le produit, car vous aurez probablement besoin de leur aide si vous rencontrez des problèmes. En regardant leur site, il semble qu'ils offrent une option de support payante, qui pourrait vous intéresser
Dave Cheney

Réponses:

9

Eh bien, j'utilise Varnish sur mes serveurs Web, principalement pour des raisons de performances, bien que ses fonctionnalités d'équilibrage de charge soient également utiles.

Mon cas d'utilisation est la mise en cache devant les sites Web basés sur Django , et il fait des merveilles pour les performances de chargement des pages. Je suis en mesure de servir la plupart des pages directement à partir du cache et de gérer un flot de visiteurs sans problème.

La raison pour laquelle j'ai choisi Varnish était principalement la performance / l'évolutivité. Les points principaux:

  • Varnish permet au noyau de gérer la mémoire virtuelle, où Squid essaie de conserver des caches de disque et de mémoire séparés, peut conduire le noyau et Squid à se quereller un peu sur ce qui doit être paginé sur le disque.
  • Varnish utilise VCL, son propre langage de configuration spécifique à un domaine, qui se compile en code machine via C. C'est un réel avantage en termes de performances si vous avez plus d'un peu de logique dans votre configuration - suppression d'en-tête conditionnelle, etc.

D'après mon expérience, Varnish fonctionne un peu mieux que Squid dans la plupart des cas, et beaucoup mieux sur les pics de trafic. D'un autre côté, la configuration correcte de Varnish va prendre un peu de chalutage de liste de diffusion, car il n'y a pas autant de documentation prête à l'emploi pour votre cas d'utilisation spécifique qui circule sur le net qu'il y en a pour Squid - principalement en raison du fait que Varnish est un projet assez jeune en comparaison.

mikl
la source
0

J'ai passé beaucoup de temps à essayer de stabiliser Varnish 1.x sur du matériel linux / dell standard, il se bloquerait toujours de manière étrange et son chien de garde le redémarrerait. Ce qui était bien, sauf pour le cache durement gagné qui ne persistait nulle part ailleurs ...

Cela dit, utilisez-vous vraiment le bon outil pour le travail? Si vous voulez un proxy inverse qui mettra en cache les résultats de la demande (en supposant que vous fournissez des en-têtes de cache de bonne qualité), le vernis est une bonne option. Espérons que la version 2.0 soit plus stable

Cependant, si vous exécutez un site * onRails et que vous souhaitez équilibrer la charge sur plusieurs serveurs principaux, HAProxy ou Nginx peut être la solution. Si vous n'avez pas besoin d'une logique d'URL compliquée (redirections, correspondances d'expressions régulières pour réécrire des URL plus anciennes, etc.), HAProxy s'adaptera à la facture. Si vous avez besoin de quelque chose de plus performant, essayez nginx.

Dave Cheney
la source