- Contributors: pkhamre, wfelipe, eitch, linickx
- Donate link: http://github.com/pkhamre/wp-varnish
- Tags: cache, caching, performance, varnish, purge, speed
- Requires at least: 3.4
- Tested up to: 3.8
- Stable tag: 0.9.1
WordPress Varnish is a simple plugin that purges new and edited content.
This plugin purges your varnish cache when content is added or edited. This includes when a new post is added, a post is updated or when a comment is posted to your blog.
To keep widgets like "Recent posts", "Recent comments" and such up to date, you should consider using ESI and include them through a text widget for arbitrary text or HTML.
This section describes how to install the plugin and get it working.
- Install the plugin 'WordPress Varnish' through the 'Plugins' menu in WordPress
- Activate the plugin through the 'Plugins' menu in WordPress
Yes.
I have provided a simple VCL that can be used as a reference.
Yes. Activating the plugin site-wide will provide the functionality to all blogs. Configuration can be done on the blogs individually, or can be global. If you want to configure Varnish servers globally, edit wp-config.php and include these lines just before "That's all, stop editing!" message:
global $varnish_servers;
$varnish_servers = array('192.168.0.1:80:secret','192.168.0.2:80:secret');
define('VARNISH_SHOWCFG',1);
The varnish servers array will configure multiple servers for sending the purges. If VARNISH_SHOWCFG is defined, configuration will be shown to all users who access the plugin configuration page (but they can't edit it).
If VARNISH_HIDE_ADMINMENU
constant is defined, configuration page will be hide
from WordPress administration.
If you want to configure Varnish version globally, edit wp-config.php and include these lines just before "That's all, stop editing!" message:
global $varnish_version;
$varnish_servers = 2; // or 3 depending your server installation
You could install Apache's mod_rpaf module: http://stderr.net/apache/rpaf/
or, in wp-config.php, near the top, put the following code:
$temp_ip = explode(',', isset($_SERVER['HTTP_X_FORWARDED_FOR'])
? $_SERVER['HTTP_X_FORWARDED_FOR'] :
(isset($_SERVER['HTTP_CLIENT_IP']) ?
$_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR']));
$remote_addr = trim($temp_ip[0]);
$_SERVER['REMOTE_ADDR'] = preg_replace('/[^0-9.:]/', '', $remote_addr );
The code takes some of the common headers and replaces the REMOTE_ADDR variable, allowing plugins that use the surfer's IP address to see the surfer's IP rather than the server's IP.
- Screenshot of the adminstration interface.
- Fix purge with WPMS Subdirectory
- Improve purge process, always call WP function for build URL
- Add support of any taxonomies
- Add feature for log varnish purge requests
- Code refactoring (PHP5, cleanup) (CAUTION: Renaming many methods !)
- Fix admin bar actions with constant VARNISH_HIDE_ADMINMENU
- Hide Varnish Version selector when global $varnish_version is defined !
- Added secret handling to WPVarnishPurgeObject, Thanks Kit Westneat
- Change WPVarnishPurgePurgeCommonObjects to WPVarnishPurgeCommonObjects, Thanks kitwestneat
- added @ to supress Undefined offset notice
- minor doc changes
- Added purge when post changes from future to publish, Thanks Marcin Pietrzak
- Added purge when theme switched, Thanks dupuis
- Removed plugins_loaded action as it doesnt do what was expected re: Issue #12. Thank you Ben Favre, Pothi Kalimuthu and allinwonder
- New .vcl to fix purge as per Issue #39, Thanks Ed Cooper
- added rule to skip caching 404s in vcl
- WordPress-Varnish UserAgent as per ticket #23
- document use of mod_rpaf or code fix for remote IP, Ticket #36
- clean data rather than reject to fix ticket #31
- added plugins_loaded hook to fix ticket #12
- Added internationalization code. Included pt_BR translation.
- Support to Multi-Site and WPMU with global configuration.
- Fix on URL purges for multiple domains and blogs on sub-directories.
- Code clean up on some functions.
- Added configuration for purging all blog, page and comments navigation.
- Added multiple servers support and timeout configuration.
- Initial release.
- Added secret handling to WPVarnishPurgeObject, Thanks Kit Westneat
- Added purge when post changes from future to publish, Thanks Marcin Pietrzak
- Added purge when theme switched, Thanks dupuis
- Removed plugins_loaded action as it doesnt do what was expected re: Issue #12. Thank you Ben Favre, Pothi Kalimuthu and allinwonder
- Varnish PURGE configuration must support regex. wp-varnish will sometimes request with regex for special purges like refreshing all blog cache and refreshing comments.