Nginx 1 Web Server Implementation Cookbook
Installing new modules and compiling Nginx
Easy reloading of Nginx using the CLI
Splitting configuration files for better management
Setting up multiple virtual hosts
Setting up a default catch-all virtual host
Using wildcards in virtual hosts
Setting up the number of worker processes correctly
Increasing the size of uploaded files
Using dynamic SSI for simple sites
All About Rewrites: The Rewrite Module
Using variables in your rewrite
Using cookies for your rewrites
Using browser agents for your rewrites
Using rate limits as a condition for rewrites
Blocking requests based on HTTP referrers
Serving maintenance page when deploying
Setting up a WordPress site with static file serving
Setting up a Drupal site with static file serving
Setting up a Magento site with static file serving
Converting your Apache's .htaccess into Nginx rewrites
Using maps to make configurations cleaner
Get It All Logged: The Logging Module
Setting up error log path and levels
Disabling logging of 404 in error logs
Using different logging profiles in the same setup
Utilizing separate error logs per virtual host
Enabling remote logging with syslog-ng
Setting up your custom logs for easy parsing
Slow Them Down: Access and Rate Limiting Module
Limiting requests for any given session
Blocking and allowing access using IP
Setting up simple rate limiting for a download directory
Rate limiting search engine bots
Setting up GeoIP using the MaxMind country database
Using the GeoIP module to set up access and rate control
Let's be Secure: Security Modules
Setting up HTTP auth for access control
Generating a secure link for files
Setting up HTTPS for a simple site
Using non standard error codes for debugging SSL setup
Using wildcard certificates with multiple servers
Using Nginx SSL variables for rewrite rules
Setting Up Applications: FCGI and WSGI Modules
Setting up a Python site using uWSGI
Utilizing FCGI cache to speed it up
Using Nginx as a simple reverse proxy
Setting up a rails site using Nginx as a reverse proxy
Setting up correct reverse proxy timeouts
Setting up caching on the reverse proxy
Using multiple backends for the reverse proxy
Serving CGI files using thttpd and Nginx
Setting up load balancing with reverse proxy
Splitting requests based on various conditions using split-clients
Improving Performance and SEO Using Nginx
Setting up TCP options correctly for optimizing performance
Reducing the keep-alives to free up Nginx workers
Using Memcached as the cache backend
Configuring the right event model and file limits
Setting max-age expiry headers for client-side caching
Blocking scrapers, bots, and spiders to save bandwidth
Redirection of www to non-www domain for SEO
Removing all white space from response
Setting up server status for monitoring
Setting up Munin for 24x7 Nginx monitoring
Preventing hotlinking using Nginx
Using embedded Perl to minify JavaScript files
Using embedded Perl to minify CSS files
Using embedded Perl to serve sitemaps (SEO)
Setting up Boost module on Drupal with Nginx
Setting up streaming for Flash files
Utilizing the 1x1 GIF serving module to do offline processing
Using Other Third-party Modules
Setting up an IMAP/POP3 proxy server
Setting up authentication for mail services
Setting up SSL for mail authentication
Using Nginx as a WEBDAV reverse proxy
Dynamic image resizing using Nginx
Replacing and searching text in Nginx response
Assembling ZIP files on the fly
Using Nginx as a HTTP publish-subscribe server
Transforming XML responses using XSLT templates
Setting up Etags for static content
Easy logging of page load times
Configuring a fair load balancing
Setting up health checks for backend servers
Tracking and reporting file upload progress
Generating circles for round edges using Nginx
Running Python using Phusion Passenger
Generating graphs directly from RRDtool in Nginx
Using Google performance tools
Serving content directly from GridFS