WordPress Nginx proxy cache integrator

Enables your blog to work properly with an nginx frontend static proxy cache. ASTRONOMICAL performance is yours!

Author:Dan Collis-Puro (profile at wordpress.org)
WordPress version required:1.5
WordPress version tested:3.4.1
Plugin version:0.2
Added to WordPress repository:27-01-2010
Last updated:09-07-2012
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:0
Rated by:0
Plugin URI:http://www.collispuro.com
Total downloads:6 878
Active installs:80+
plugin download
Click to start download
Need for Speed?

This plugin handles the wordpress/php side of a statically cached nginx-fronted wordpress (or wordpress mu) site. It makes WordPress emit an "X-Accel-Expires: 0" header when a user is logged in or has taken actions that should cause them to get a customized page on your frontend. This - along with the nginx configuration below - will ensure logged-in users aren't impacted by your static nginx cache.

Why would you want to statically cache wordpress with nginx?

  • INSANE performance. Hardware that could generate 6 pages / second can now generate many thousands.
  • Low resource usage. Even on very busy servers, nginx uses only a handful of RAM.
  • Unobtrusiveness. You plop nginx in front of wordpress and that's pretty much it. This plugin (and nginx) is all you need to make your site digg- and slashdot- proof.
  • Stability. Nginx is rock solid.
  • Faster is better. All the web gurus agree - visitors like faster sites, even when the differences are slight.
  • Do more with less. Using a frontend proxy lets you keep your heavy wordpress apaches lightly loaded, letting you handle more concurrent connections and use less RAM.

We've been using a caching nginx proxy at the fairly busy blogs.law.harvard.edu since September, 2009. The results have been dramatic: we've halved the amount of RAM we need, doubled our outgoing network throughput (nginx is fast!) and have had essentially no significant load spikes.

Drawbacks

There are a few.

  • Plugins that rely on php code running on each page view won't work properly. This is similar to wp-supercache or any of the other static caching plugins. Stats, image rotation, etc. You should implement these features via javascript or third-party services, depending.
  • You need to install and configure an nginx frontend proxy - but see the "installation" tab. It's really not that hard.
Notes
  • It is completely harmless to install and activate this plugin before you've got the nginx side set up.
  • YOU MUST keep this plugin activated as long as you've got an nginx frontend proxy active - otherwise, you'll end up caching too much of your site, and authenticated users won't see customized pages.
  • This plugin helps speed up access for authenticated users mainly because it makes all other traffic a negligible resource drain. I suggest installing apc (or another opcode cache) and - alternatively - a wordpress object cache. Definitely install an opcode cache - leave the object cache for later. You may find you don't need it!

FAQ
ChangeLog