Nginx Helper for WordPress caching, permalinks & efficient file handling in multisite
PHP Shell JavaScript
Clone or download
Pull request Compare This branch is 250 commits behind rtCamp:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

alt text


Helps WordPress-Nginx work together nicely using fastcgi/proxy cache purging, nginx map{}, rewrite support for permalinks & more


  1. Removes index.php from permalinks when using WordPress with nginx.
  2. Adds support for nginx fastcgi_cache_purge & proxy_cache_purge directive from module. Provides settings so you can customize purging rules.
  3. Adds support for nginx map{..} on a WordPress-multisite network installation. Using it Nginx can serve PHP file uploads even if PHP/MySQL crashes. Please check tutorials list below for related Nginx config.


You will need to follow one ore more tutorials below to get desired functionality:


Automatic Installation

  1. Log in to your WordPress admin panel, navigate to the Plugins menu and click Add New.
  2. In the search field type “Nginx Helper” and click Search Plugins. From the search results, pick Nginx Helper and click Install Now. Wordpress will ask you to confirm to complete the installation.

Manual Installation

  1. Extract the zip file.
  2. Upload them to /wp-content/plugins/ directory on your WordPress installation.
  3. Then activate the Plugin from Plugins page.

For proper configuration, check tutorial list of Description tab

Frequently Asked Questions

FAQ - Installation/Comptability

Q. Will this work out of the box?

No. You need to make some changes at the Nginx end. Please check tutorial list of Description tab

FAQ - Nginx Map

Q. My multisite already uses WPMU_ACCEL_REDIRECT. Do I still need Nginx Map?

Definitely. WPMU_ACCEL_REDIRECT reduces the load on PHP, but it still ask WordPress i.e. PHP/MySQL to do some work for static files e.g. images in your post. Nginx map lets nginx handle files on its own bypassing wordpress which gives you much better performance without using a CDN.

FAQ - Nginx Fastcgi Cache Purge

Q. Does it work for custom posts and taxonomies? Yes. It handles all post-types same way.

Q. How do I know my Nginx config is correct for fastcgi purging?

Manually purging any page from the cache, by following instructions in the previous answer.

Version 1.3.4 onwards, Nginx Helper adds a comment at the end of the html source ('view source' in your favourite browser): <!--Cached using Nginx-Helper on 2012-10-08 07:01:45. It took 42 queries executed in 0.280 seconds.--> This shows the time when the page was last cached. This date/time will be reset whenever this page is purged and refreshed in the cache.

Just check this comment before and after a manual purge. As long as you don't purge the page (or make changes that purge it from the cache), the timestamp will remain as it is, even if you keep refreshing the page. This means the page was served from the cache and it's working!

The rest shows you the database queries and time saved on loading this page. (This would have been the additional resource load, if you weren't using fast-cgi-cache.)

Q. I need to flush a cached page immediately! How do I do that?

Nginx helper plugin handles usual scenarios, when a page in the cache will need purging. For example, when a post is edited or a comment is approved on a post.

To purge a page immediately, follow these instructions: (eg. Between the domain name and the rest of the url, insert '/purge/'. So, in the above eg, the purge url will be Just open this in a browser and the page will be purged instantly. Needless to say, this won't work, if you have a page or taxonomy called 'purge'.

FAQ - Nginx Map

Q. I am using X plugin. Will it work on Nginx?

Most likely yes. A wordpress plugin, if not using explictly any Apache-only mod, should work on Nginx. Some plugin may need some extra work.

Still need help!

Post your problem in our free support forum or forum here. We answer questions everywhere. Including Nginx official forum, serverfault, stackoverflow, etc. Its just that we are hyperactive on our own forum!


  1. Nginx plugin settings
  2. Remaining settings




  • Fixed typo that interfered with archive purge settings. Thanks to Daan Kortenbach for pointing this out.


  • Improved code for map generation to better conventions since the nesting confused some servers.
  • Added map update process to admin_init for frequent refreshes.


  • Fixed duplicate entries.


  • Another bug fix in the revised code for improved multisite and multidomain mapping.


  • Fixed bug in the revised code for improved multisite and multidomain mapping.


  • Revised code for improved multisite and multidomain mapping.


  • Timestamp now only gets added to content-type text/html
  • Added option to toggle timestamp creation


  • Fixed bug related to nomenclature of comment status that caused purge to fail.


  • Removed extraneous headers.



  • Changed the action hook, back to 'shutdown' from 'wp_footer' to add verification comments.
  • Added a check to prevent adding comments to ajax requests,


  • Changed the action hook, from 'shutdown' to 'wp_footer' to add verification comments. This was interfering with other plugins.


  • Improved Readme.
  • Improved cache verification comments.



  • Fixed map generation for multi domain installs using domain mapping plugin, where blog ids were not displayed.


  • Fixed map generation for multi domain installs with domain mapping plugin.


  • Minor fixes for directory structure and file names.


  • Improved Readme.


  • Fixed map generation error.
  • Fixed purging logic.
  • Fixed UI where purge settings were lost on disabling and re-enabling purge.
  • Minor Ui rearrangement.


  • Improved readme.txt. Added Screenshots.


  • First release


Added manual 'purge all urls' feature