2016-01-29 2 views
0

Je me demande si je peux obtenir de l'aide. Je cours un VPS avec du vernis. Ce VPS est principalement WordPress mais a un site Joomla qui fonctionne aussi. Pour une raison quelconque, mon fichier de configuration Varnish a décidé qu'il allait revenir à la valeur par défaut, donc j'ai eu une série de problèmes car j'ai été assez bête pour ne pas sauvegarder mon fichier de configuration personnalisé!Vernis config conseiller

Voici mon fichier de configuration actuelle:

# This is a basic VCL configuration file for varnish. See the vcl(7) 
# man page for details on VCL syntax and semantics. 
# 
# Default backend definition. Set this to point to your content 
# server. 
# 
backend default { 
    .host = "LIVE IP"; 
    .port = "8080"; 
    .max_connections = 800; 
} 

acl purge { "localhost"; "127.0.0.1"; } 

sub vcl_recv { 
set req.grace = 2m; 

# Set X-Forwarded-For header for logging in nginx 
remove req.http.X-Forwarded-For; 
set req.http.X-Forwarded-For = client.ip; 

# Remove has_js and CloudFlare/Google Analytics __* cookies and statcounter is_unique 
set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js|is_unique)=[^;]*", ""); 
# Remove a ";" prefix, if present. 
set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); 

# Either the admin pages or the login 
if (req.url ~ "/wp-(login|admin|cron)") { 
# Don't cache, pass to backend 
return (pass); 
} 

# Remove the wp-settings-1 cookie 
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(;)?", ""); 

# Remove the wp-settings-time-1 cookie 
set req.http.Cookie = regsuball(req.http.Cookie, 
"wp-settings-time-1=[^;]+(;)?", ""); 

# Remove the wp test cookie 
set req.http.Cookie = regsuball(req.http.Cookie, 
"wordpress_test_cookie=[^;]+(;)?", ""); 

# Static content unique to the theme can be cached (so no user uploaded images) 
# The reason I don't take the wp-content/uploads is because of cache size on bigger blogs 
# that would fill up with all those files getting pushed into cache 
if (req.url ~ "wp-content/themes/" && req.url ~ 
"\.(css|js|png|gif|jp(e)?g)") { 
unset req.http.cookie; 
} 

# Even if no cookies are present, I don't want my "uploads" to be cached due to their potential size 
if (req.url ~ "/wp-content/uploads/") { 
return (pass); 
} 

# any pages with captchas need to be excluded 
if (req.url ~ "^/contact/" || req.url ~ "^/links/domains-for-sale/") 
{ 
return(pass); 
} 

# Check the cookies for wordpress-specific items 
if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") { 
# A wordpress specific cookie has been set 
return (pass); 
} 

# allow PURGE from localhost 
if (req.request == "PURGE") { 
if (!client.ip ~ purge) { 
error 405 "Not allowed."; 
} 
return (lookup); 
} 

# Force lookup if the request is a no-cache request from the client 
if (req.http.Cache-Control ~ "no-cache") { 
return (pass); 
} 

# Try a cache-lookup 
return (lookup); 

} 

sub vcl_fetch { 
#set obj.grace = 5m; 
set beresp.grace = 2m; 

} 

sub vcl_hit { 
if (req.request == "PURGE") { 
purge; 
error 200 "Purged."; 
} 
} 

sub vcl_miss { 
if (req.request == "PURGE") { 
purge; 
error 200 "Purged."; 
} 
} 

La question que j'ai est que mes fichiers de base de WP sont déplacés vers un sous-dossier appelé « noyau » et je changer mon URL de connexion à/administrateur au lieu de wp -login.php. Pour me connecter, j'irais soit à domain.com/administrator ou domain.com/core/administrator. Si je tape le domaine sans/core/il dirait à */core/administrateur.

Le fonctionnement de Varnish ne me permet pas de me connecter au côté WP-admin du site, ce qui est dû, selon moi, aux cookies. J'ai ajouté/administrateur au texte de VCL-config mais cela n'a pas semblé fonctionner.

Quelqu'un peut-il m'aider s'il vous plaît, car je préfère ne pas revenir à wp-login.php.

Je ne semble pas non plus pouvoir me connecter à SSH et purger le cache comme je le pouvais auparavant. Honnêtement, je ne me souviens plus de la configuration que j'avais auparavant, mais je suis sûr qu'il me manque quelque chose, donc si quelqu'un peut améliorer ce code pour le faire fonctionner de son mieux (ou si j'ai raté des choses importantes, spécifiquement avec Joomla) alors l'aide serait grandement appréciée. Je ne fais pas de thème à la volée, mais j'ai quelques utilisateurs qui se connectent sur différents sites hébergés sur le VPS pour ajouter/changer des messages, donc obtenir le cache pour purger correctement serait fantastique car je commence à tirer mon les cheveux!

Merci à tous.

Répondre

2

Pour que PURGE fonctionne, vous pouvez essayer d'ajouter votre nom d'hôte VPS dans la section "purge acl". Je sais que je devais le faire sur mon VPS et Varnish v4.

Et pour une partie wp admin, il ne devrait pas être caches du tout, alors essayez changeing cette partie:

# Either the admin pages or the login 
if (req.url ~ "/wp-(login|admin|cron)") { 
# Don't cache, pass to backend 
return (pass); 
} 

dans ce:

# Either the admin pages or the login 
if (req.url ~ "/core/administrator" || req.url ~ "/administrator") { 
# Don't cache, pass to backend 
return (pass); 
} 
+0

Merci, cela ne semble pas fonctionner bien maintenant! Je semble avoir un problème avec les formulaires de contact qui ne fonctionnent pas avec les formulaires Ninja ou le formulaire de contact 7 avec Wordpress. Y a-t-il un moyen de contourner ceci? Je n'ai jamais eu de problème avant cette épreuve! Aucune autre mise en cache de page n'est active, je dois ajouter. – Dan