Protégez la purge de vernis par CloudFlare to Vernarn

Je travaille depuis un certain time et je ne trouve aucune solution.

J'ai un vernis assis devant mon server nginx, avec CloudFlare assis devant.

Lorsque je lance un curl, l'hôte de PURGE CloudFlare le reprend et, bien sûr, le nie avec une erreur 503. Si j'utilise direct.host pour contourner CloudFlare, il frappe le server de vernis et accepte la requête, mais il ne fait rien puisque Direct.host n'est pas utilisé, donc il n'y a rien dans le cache de cette URL.

J'utilise WordPress et il y a un plugin WordPress Vernis Purge, il dit d'append la ligne suivante à wp-config.php :

 define('VHP_VARNISH_IP','127.0.0.1') 

Il s'agit spécifiquement de travailler avec des servers proxy et / ou CloudFlare pour vous assurer que la request va au server de vernis plutôt que CloudFlare, mais cela ne semble pas aider.

Quelqu'un l'a-t-il déjà vu et a-t-il une idée?

3 Solutions collect form web for “Protégez la purge de vernis par CloudFlare to Vernarn”

Votre problème est que la request de purge est traitée par ClodFlare au lieu de Vernis.

Garde en tête que:

  • Dans le vernis 3, vous devez utiliser la purge; au lieu de set obj.ttl = 0s;
  • Le vernis résoudra l'object en utilisant vcl_hash . Dans le vernis 3, cela signifie, par défaut [1], que la requête sera utilisée avec l'en-tête HTTP "Host" ou, s'il n'est pas présent, l'IP du server:

     sub vcl_hash { hash_data(req.url); if (req.http.host) { hash_data(req.http.host); } else { hash_data(server.ip); } return (hash); } 
  • Vous pouvez replace vcl_hash pour correspondre à vos besoins

Veuillez consulter la documentation [2] et l'information sur le vernis [3] sur Bans & Purges

À mon avis, vous devez choisir:

  1. Émettez les purges directement au vernis contournant CloudFlare, en utilisant directement curl -H "Host: _host_wich_has_the_url_to_purge" -X PURGE http://_varnish_ip_:_varnish_port/_url_to_purge_
  2. Essayez d'append les plages IP CloudFlare à votre acl purge (non recommandé) et requestz à CloudFlare de passer de telles requests à Vernis.

[1] https://www.varnish-cache.org/docs/3.0/reference/vcl.html#examples

[2] https://www.varnish-cache.org/docs/3.0/tutorial/purging.html

[3] https://www.varnish-software.com/static/book/Cache_invalidation.html#removing-a-single-object

FWIW, le plugin dit de mettre l'IP de votre server de vernis (dans http://wordpress.org/plugins/varnish-http-purge/faq/ ). "Votre Varnish IP doit être l'une des adresses IP que Varnish écoute. Si vous utilisez plusieurs IP ou si vous avez personnalisé vos ACL, vous devrez choisir que cela ne soit pas en conflit avec vos autres parameters. , si vous avez un vernis écoutant sur une adresse IP publique et privée, vous voudrez choisir le privé. D'autre part, si vous avez dit à Vernis d'écouter le 0.0.0.0 (c.-à-d. "écoutez sur chaque interface que vous pouvez") besoin de vérifier l'IP que vous définissez votre ACL de purge pour permettre (généralement 127.0.0.1 alias localhost), et utilisez-le (c'est-à-dire 127.0.0.1). "

Lorsque vous exécutez la command de purge manuellement, c'est-à-dire via CURL, qu'est-ce que vous mettez pour que cela fonctionne?

Cloudflare, lorsque vous leur donnez votre DNS, configurera direct.notre domaine.com. Vous devriez pouvoir émettre le PURGE directement sur cette adresse, qui contournera Cloudflare et appuyez directement sur votre server de vernis. Assurez-vous que tous les blocs ACL que vous avez autorisés à l'adresse dont vous envoyez le PURGE.

  • Vernis transformant POST en GET
  • Mise en cache des pages PHP, vernis, nginx, autres?
  • Besoin de conseils de configuration de vernis
  • Dois-je activer KeepAlive sur le backend d'Apache avec vernis comme interface?
  • Le domaine n'est pas desservi par Nginx
  • Configuration de Sever pour la video segmentée en HTTP en direct
  • Comment optimiser le vernis au dessus d'Odoo?
  • Comment retirez-vous du vernis?
  • Vernis 4 Configuration de travail (optimisé) pour Wordpress (default.vcl)
  • Configuration de HTTPD derrière un vernis sur un VPS de 512 Mb
  • Comment bloquer ce model d'URL dans Varnish VCL?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.