Nginx HTTP Server - Second Edition


Nginx HTTP Server - Second Edition
eBook: $26.99
Formats: PDF, PacktLib, ePub and Mobi formats
$22.94
save 15%!
Print + free eBook + free PacktLib access to the book: $71.98    Print cover: $44.99
$44.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Reviews
Support
Sample Chapters
  • Complete configuration directive and module reference
  • Discover possible interactions between Nginx and Apache to get the best of both worlds
  • Learn to configure your servers and virtual hosts efficiently
  • A step-by-step guide to switching from Apache to Nginx

Book Details

Language : English
Paperback : 318 pages [ 235mm x 191mm ]
Release Date : July 2013
ISBN : 1782162321
ISBN 13 : 9781782162322
Author(s) : Clément Nedelcu
Topics and Technologies : All Books, Networking and Servers, Open Source


Table of Contents

Preface
Chapter 1: Downloading and Installing Nginx
Chapter 2: Basic Nginx Configuration
Chapter 3: HTTP Configuration
Chapter 4: Module Configuration
Chapter 5: PHP and Python with Nginx
Chapter 6: Apache and Nginx Together
Chapter 7: From Apache to Nginx
Appendix A: Directive Index
Appendix B: Module Reference
Appendix C: Troubleshooting
Index
  • Chapter 1: Downloading and Installing Nginx
    • Setting up the prerequisites
      • GCC – GNU Compiler Collection
      • The PCRE library
      • The zlib library
      • OpenSSL
    • Downloading Nginx
      • Websites and resources
      • Version branches
      • Features
      • Downloading and extracting
    • Configure options
      • The easy way
      • Path options
      • Prerequisites options
      • Module options
        • Modules enabled by default
        • Modules disabled by default
      • Miscellaneous options
      • Configuration examples
        • About the prefix switch
        • Regular HTTP and HTTPS servers
        • All modules enabled
        • Mail server proxy
      • Build configuration issues
        • Make sure you installed the prerequisites
        • Directories exist and are writable
      • Compiling and installing
    • Controlling the Nginx service
      • Daemons and services
      • User and group
      • Nginx command-line switches
      • Starting and stopping the daemon
      • Testing the configuration
      • Other switches
    • Adding Nginx as a system service
      • System V scripts
      • What is an init script?
      • Init script for Debian-based distributions
      • Init script for Red Hat-based distributions
      • Installing the script
        • Debian-based distributions
        • Red Hat-based distributions
    • Summary
  • Chapter 2: Basic Nginx Configuration
    • Configuration file syntax
      • Configuration Directives
      • Organization and inclusions
      • Directive blocks
      • Advanced language rules
        • Directives accept specific syntaxes
        • Diminutives in directive values
        • Variables
        • String values
    • Base module directives
      • What are base modules?
      • Nginx process architecture
      • Core module directives
      • Events module
      • Configuration module
    • A configuration for your profile
      • Understanding the default configuration
      • Necessary adjustments
      • Adapting to your hardware
    • Testing your server
      • Creating a test server
      • Performance tests
        • Httperf
        • Autobench
        • OpenWebLoad
      • Upgrading Nginx gracefully
    • Summary
  • Chapter 3: HTTP Configuration
    • HTTP Core module
      • Structure blocks
    • Module directives
      • Socket and host configuration
        • listen
        • server_name
        • server_name_in_redirect
        • server_names_hash_max_size
        • server_names_hash_bucket_size
        • port_in_redirect
        • tcp_nodelay
        • tcp_nopush
        • sendfile
        • sendfile_max_chunk
        • send_lowat
        • reset_timedout_connection
      • Paths and documents
        • root
        • alias
        • error_page
        • if_modified_since
        • index
        • recursive_error_pages
        • try_files
      • Client requests
        • keepalive_requests
        • keepalive_timeout
        • keepalive_disable
        • send_timeout
        • client_body_in_file_only
        • client_body_in_single_buffer
        • client_body_buffer_size
        • client_body_temp_path
        • client_body_timeout
        • client_header_buffer_size
        • client_header_timeout
        • client_max_body_size
        • large_client_header_buffers
        • lingering_time
        • lingering_timeout
        • lingering_close
        • ignore_invalid_headers
        • chunked_transfer_encoding
        • max_ranges
      • MIME types
        • types
        • default_type
        • types_hash_max_size
      • Limits and restrictions
        • limit_except
        • limit_rate
        • limit_rate_after
        • satisfy
        • internal
      • File processing and caching
        • disable_symlinks
        • directio
        • directio_alignment
        • open_file_cache
        • open_file_cache_errors
        • open_file_cache_min_uses
        • open_file_cache_valid
        • read_ahead
      • Other directives
        • log_not_found
        • log_subrequest
        • merge_slashes
        • msie_padding
        • msie_refresh
        • resolver
        • resolver_timeout
        • server_tokens
        • underscores_in_headers
        • variables_hash_max_size
        • variables_hash_bucket_size
        • post_action
    • Module variables
      • Request headers
      • Response headers
      • Nginx generated
    • The Location block
      • Location modifier
        • The = modifier
        • No modifier
        • The ~ modifier
        • The ~* modifier
        • The ^~ modifier
        • The @ modifier
      • Search order and priority
        • Case 1:
        • Case 2:
        • Case 3:
    • Summary
  • Chapter 4: Module Configuration
    • Rewrite module
      • Reminder on regular expressions
        • Purpose
        • PCRE syntax
        • Quantifiers
        • Captures
      • Internal requests
        • error_page
        • Rewrite
        • Infinite loops
        • Server Side Includes (SSI)
      • Conditional structure
      • Directives
      • Common rewrite rules
        • Performing a search
        • User profile page
        • Multiple parameters
        • Wikipedia-like
        • News website article
        • Discussion board
    • SSI module
      • Module directives and variables
      • SSI Commands
        • File includes
        • Working with variables
        • Conditional structure
        • Configuration
    • Additional modules
      • Website access and logging
        • Index
        • Autoindex
        • Random index
        • Log
      • Limits and restrictions
        • Auth_basic module
        • Access
        • Limit connections
        • Limit request
      • Content and encoding
        • Empty GIF
        • FLV and MP4
        • HTTP headers
        • Addition
        • Substitution
        • Gzip filter
        • Gzip static
        • Charset filter
        • Memcached
        • Image filter
        • XSLT
      • About your visitors
        • Browser
        • Map
        • Geo
        • GeoIP
        • UserID filter
        • Referer
        • Real IP
      • Split Clients
      • SSL and security
        • SSL
        • Setting up an SSL certificate
        • Secure link
      • Other miscellaneous modules
        • Stub status
        • Degradation
        • Google-perftools
        • WebDAV
      • Third-party modules
    • Summary
  • Chapter 5: PHP and Python with Nginx
    • Introduction to FastCGI
      • Understanding the CGI mechanism
      • Common Gateway Interface (CGI)
      • Fast Common Gateway Interface (FastCGI)
      • uWSGI and SCGI
      • Main directives
      • FastCGI caching
      • Upstream blocks
        • Module syntax
        • Server directive
    • PHP with Nginx
      • Architecture
      • PHP-FPM
      • Setting up PHP and PHP-FPM
        • Downloading and extracting
        • Requirements
        • Building PHP
        • Post-install configuration
        • Running and controlling
      • Nginx configuration
    • Python and Nginx
      • Django
      • Setting up Python and Django
        • Python
        • Django
        • Starting the FastCGI process manager
      • Nginx configuration
    • Summary
  • Chapter 6: Apache and Nginx Together
    • Nginx as reverse proxy
      • Understanding the issue
      • The reverse proxy mechanism
      • Advantages and disadvantages of the mechanism
    • Nginx proxy module
      • Main directives
      • Caching, buffering, and temporary files
      • Limits, timeouts, and errors
      • Other directives
      • Variables
    • Configuring Apache and Nginx
      • Reconfiguring Apache
        • Configuration overview
        • Resetting the port number
        • Accepting local requests only
      • Configuring Nginx
        • Enabling proxy options
        • Separating content
      • Advanced configuration
    • Improving the reverse proxy architecture
      • Forwarding the correct IP address
      • SSL issues and solutions
      • Server control panel issues
    • Summary
  • Chapter 7: From Apache to Nginx
    • Nginx versus Apache
      • Features
        • Core and functioning
        • General functionality
      • Flexibility and community
      • Performance
      • Usage
      • Conclusion
    • Porting your Apache configuration
      • Directives
      • Modules
      • Virtual hosts and configuration sections
        • Configuration sections
        • Creating a virtual host
      • .htaccess files
        • Reminder on Apache .htaccess files
        • Nginx equivalence
    • Rewrite rules
      • General remarks
        • On the location
        • On the syntax
        • RewriteRule
      • WordPress
      • MediaWiki
      • vBulletin
    • Summary
  • Appendix B: Module Reference
    • Access
    • Addition*
    • Auth_basic module
    • Autoindex
    • Browser
    • Charset
    • Core
    • DAV*
    • Degradation*
    • Empty GIF
    • Events
    • FastCGI
    • FLV*
    • Geo
    • Geo IP*
    • Google-perftools*
    • Gzip
    • Gzip Static*
    • Headers
    • HTTP Core
    • Image Filter*
    • Index
    • Limit Conn
    • Limit Requests
    • Log
    • Map
    • Memcached
    • MP4*
    • Proxy
    • Random index*
    • Real IP*
    • Referer
    • Rewrite
    • SCGI
    • Secure Link*
    • Split Clients
    • SSI
    • SSL*
    • Stub status*
    • Substitution*
    • Upstream
    • User ID
    • uWSGI
    • XSLT*
  • Appendix C: Troubleshooting
    • General tips on troubleshooting
      • Checking access permissions
      • Testing your configuration
      • Have you reloaded the service?
      • Checking logs
    • Install issues
    • The 403 Forbidden custom error page
    • 400 Bad Request
    • Location block priorities
    • If block issues
      • Inefficient statements
        • Unexpected behavior

Clément Nedelcu

Clément Nedelcu was born in France and studied in UK, French, and Chinese universities. After teaching computer science and programming in several eastern Chinese universities, he worked as a Technology Consultant in France, specializing in web and Microsoft .NET programming as well as Linux server administration. Since 2005, he has also been administering a major network of websites in his spare time. This eventually led him to discover Nginx: it made such a difference that he started his own blog about it. One thing leading to another…

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


Errata

- 1 submitted: last submission 19 May 2014

Page 232 | Type: Code | Date: 24 Oct 2013

The try_files line should read:

try_files $uri $uri/ /index.php?$args;

instead of:

try_files $uri $uri/ /index.php;

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Nginx HTTP Server - Second Edition +    Practical Data Analysis =
50% Off
the second eBook
Price for both: £24.65

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Download and build Nginx from source along with its dependencies
  • The basics of Nginx configuration: syntax, structure, semantics
  • Create virtual host configurations effortlessly
  • Discover all first-party modules and how to enable, configure and use them
  • Establish advanced rewrite rules with the Nginx Rewrite module
  • Set up Nginx to work with PHP, Python and more via FastCGI
  • Configure Nginx to work as a frontend for your existing HTTP server
  • Learn how to port your Apache rewrite rules through three practical examples
  • Troubleshoot if something goes wrong with the server

In Detail

Nginx is a lightweight HTTP server designed for high-traffic websites, with network scalability as the primary objective. With the advent of high speed Internet access, short loading times and fast transfer rates have become a necessity. This free, open source solution will either come as a full replacement of other software such as Apache, or stand in front of your existing infrastructure to improve its overall speed.

"Nginx HTTP Server - Second Edition" provides a detailed guide to setting up Nginx in different ways that correspond to actual production situations: as a standalone server, as a reverse proxy, interacting with applications via FastCGI and more. In addition, the complete directive reference will be your best friend at all stages of the configuration and maintenance processes.

This book is the perfect companion for both Nginx beginners and experienced administrators. For beginners, it will take you through the complete process of setting up this lightweight HTTP server on your system and configuring its various modules to get it to do exactly what you need, in a fast and secure way. For more experienced administrators, this book provides different angles of approach that can help you make the most of your current infrastructure. Nginx can be employed in many situations, whether you are looking to construct an entirely new web-serving architecture or simply want to integrate an efficient tool to optimize your site loading speeds.

This book takes you through the setup and configuration of Nginx by detailing every step of the way, from downloading to configuring your server in a selection of common architectures.

Approach

This tutorial book includes detailed instructions for each of the processes it describes: downloading and installing the application, configuring and using modules, and much more. It provides a step-by-step tutorial to replace your existing web server with Nginx. With commented configuration sections and in-depth module descriptions, you will be able to make the most of the performance potential offered by Nginx.

Who this book is for

By covering both early setup stages and advanced topics this book will suit web administrators interested in solutions to optimize their infrastructure, whether they are looking into replacing existing web server software or integrating a new tool cooperating with applications already up and running. If you, your visitors and your operating system have been disappointed by Apache, this book is exactly what you need.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software