Free Sample
+ Collection

Nginx 1 Web Server Implementation Cookbook

Dipankar Sarkar

Over 100 recipes to master using the Nginx HTTP server and reverse proxy
RRP $23.99
RRP $39.99
Print + eBook

Want this title & more?

$12.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781849514965
Paperback236 pages

About This Book

  • Quick recipes and practical techniques to help you maximize your experience with Nginx
  • Interesting recipes that will help you optimize your web stack and get more out of your existing setup
  • Secure your website and prevent your setup from being compromised using SSL and rate-limiting techniques
  • Get more out of Nginx by using it as an important part of your web application using third-party modules
  • Full of illustrations and diagrams to help you implement your web needs with Nginx, with focus on practical examples


Who This Book Is For

If you are tired of Apache consuming all your server memory with little traffic and to overcome this, or for some other reason, you are looking for a high-performance load-balancing proxy server and have tried using Nginx, then this book is for you. You need some basic knowledge of Nginx. System administrators and web developers will benefit greatly from this book.

Table of Contents

Chapter 1: The Core HTTP Module
Installing new modules and compiling Nginx
Running Nginx in debug mode
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
Adding content before and after a particular page
Enabling auto indexing of a directory
Serving any random web page from a directory
Serving cookies for identifying and logging users
Re-encoding the response to another encoding
Enabling Gzip compression on some content types
Setting up 404 and other error pages
Chapter 2: All About Rewrites: The Rewrite Module
Setting up a simple redirect
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
Chapter 3: Get It All Logged: The Logging Module
Setting up error log path and levels
Logging it like Apache
Disabling logging of 404 in error logs
Using different logging profiles in the same setup
Enabling a log file cache
Utilizing separate error logs per virtual host
Setting up log rotation
Enabling remote logging with syslog-ng
Setting up your custom logs for easy parsing
Chapter 4: 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
Chapter 5: 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
Chapter 6: Setting Up Applications: FCGI and WSGI Modules
Setting up a PHP FCGI site
Setting up a Python site using uWSGI
Modifying FCGI timeouts
Utilizing FCGI cache to speed it up
Using multiple FCGI backends
Chapter 7: Nginx as a Reverse Proxy
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
Chapter 8: 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
Enabling GZIP pre-compression
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
Chapter 9: 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
Streaming of MP4/H.264 files
Setting up SCGI sites
Setting up expiring links
Chapter 10: Some More Third-party Modules
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
Configuring Basic HTTP auth using PAM
Configuring Basic HTTP auth using Kerberos

What You Will Learn

  • Run and debug Nginx issues effectively
  • Set up WordPress and Drupal sites using FCGI
  • Set up Nginx log rotation on various UNIX systems
  • Stop bots and scrapers from slowing down and spamming your site
  • Learn to set up SSL certificates and secure your site
  • Learn how to use WSGI and set up a Python-based web application
  • Set up a fair load-balancing reverse proxy using Nginx
  • Use memcached as a caching backend for Nginx
  • Set up Flash streaming for your website without additional software
  • Convert Apache configurations into working Nginx configurations

In Detail

Nginx is an open source high-performance web server, which has gained quite some popularity recently. Due to its modular architecture and small footprint, it has been the default choice for a lot of smaller Web 2.0 companies for use as a load-balancing proxy server. It supports most of the existing back-end web protocols like FCGI, WSGI, and SCGI. This book is for you if you want to have in-depth knowledge of the Nginx server.

Nginx 1 Web Server Implementation Cookbook covers the whole range of techniques that would prove useful for you in setting up a very effective web application with the Nginx web server. It has recipes for lesser-known applications of Nginx like a mail proxy server, streaming of video files, image resizing on the fly, and much more.

The first chapter of the book covers the basics that would be useful for anyone who is starting with Nginx. Each recipe is designed to be independent of the others.

The book has recipes based on broad areas such as core, logging, rewrites, security, and others. We look at ways to optimize your Nginx setup, setting up your WordPress blog, blocking bots that post spam on your site, setting up monitoring using munin, and much more.

Nginx 1 Web Server Implementation Cookbook makes your entry into the Nginx world easy with step-by-step recipes for nearly all the tasks necessary to run your own web application.


Read More