Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Nginx HTTP Server
Nginx HTTP Server

Nginx HTTP Server: Harness the power of Nginx to make the most of your infrastructure and serve pages faster than ever before , Fourth Edition

eBook
€26.98 €29.99
Paperback
€36.99
Hardcover
€37.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Nginx HTTP Server

Downloading and Installing Nginx

In this first chapter, we will proceed with the necessary steps towards establishing a functional setup of Nginx. This moment is crucial for the smooth functioning of your web server—there are some required libraries and tools for installing the web server, some parameters that you will have to decide upon when compiling the binaries, and there may also be some configuration changes to perform on your system.

This chapter covers the following:

  • Installing via package managers
  • Downloading and installing the prerequisites for compiling Nginx binaries
  • Downloading a suitable version of the Nginx source code
  • Configuring Nginx compile-time options
  • Controlling the application with an init script
  • Configuring the system to launch Nginx automatically on startup
  • A quick overview of the possibilities offered by the Nginx Plus platform

Installing via package managers

The quickest, and easiest, way to install Nginx is to simply use your OS-provided version. Most of the time, these are kept fairly updated; however, for some Linux distributions focusing on stability, you may only have older versions of Nginx available. Sometimes, your Linux distribution may provide multiple versions of Nginx with different compile flags.

In general, before embarking on a more complex journey, we should check if we can use the easy solution. For a Debian-based operating system, we first find the Nginx compiles available then get the info for the one we want:

apt-cache search nginx
apt-cache show PACKAGE_NAME
apt-get install PACKAGE_NAME

For Red Hat Linux-based operating systems, we need to enable the EPEL repo first and then do the same:

yum install epel-release
yum search nginx

yum info PACKAGE_NAME
yum install PACKAGE_NAME

If the version provided is current enough, then you're ready to configure Nginx in the next chapter.

If the version provided by your distribution is too old, then Nginx provides packages for RHEL/CentOS distributions as well as Debian/Ubuntu distributions.

Nginx provided packages

To set up a yum repository for RHEL/CentOS, create a file named /etc/yum.repos.d/nginx.repo with the following contents:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

Replace OS with rhel or centos, depending on the distribution used, and OSRELEASE with 6 or 7, for versions 6.x or 7.x, respectively. Afterwards, Nginx can now be installed with yum:

yum install nginx

For Debian-based distributions, we need to first use their signing key to authenticate the package signatures. Download the following file first from http://nginx.org/keys/nginx_signing.key.

Then run the following command:

sudo apt-key add nginx_signing.key

With the key added, we can now add the Nginx repository to our sources.list found in /etc/apt/sources.list. For Debian, we add the following lines:

deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx

Where codename is either jessie or stretch depending on your version of Debian. For Ubuntu, we use the following dependencies:

deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx

Where codename is one of trusty, xenial, or zesty depending on your version of Ubuntu. Finally, we can install Nginx with the apt-get command option:

apt-get update
apt-get install nginx

Compiling from source

There are situations where compiling Nginx from source is preferable. It gives us the most flexibility regarding modules, so we can customize better for our intended usage. For example, we could compile a very lean version for embedded hardware.

Additionally, we can make sure we use the latest version of Nginx and have all new features available to us. Keep in mind, though, that when installing software from source you are responsible for keeping it updated. Nginx, just like every other piece of software, sometimes finds security issues that it needs to address. An OS package is much easier to update than a source install, but so long as you're aware of the need to maintain it yourself, there is absolutely no problem.

Depending on the optional modules that you select at compile time, you will perhaps need different prerequisites. We will guide you through the process of installing the most common ones, such as GCC, PCRE, zlib, and OpenSSL.

GNU Compiler Collection

Nginx is a program written in C, so you will first need to install a compiler tool such as the GNU Compiler Collection (GCC) on your system. GCC may already be present on your system, but if that is not the case you will have to install it before going any further.

GCC is a collection of free open source compilers for various languages – C, C++, Java, Ada, FORTRAN, and so on. It is the most commonly used compiler suite in the Linux world, and Windows versions are also available. A vast number of processors are supported, such as x86, AMD64, PowerPC, ARM, MIPS, and more.

First, make sure it isn't already installed on your system:

[alex@example.com ~]$ gcc

If you get the following output, it means that GCC is correctly installed on your system and you can skip to the next section:

gcc: no input files

If you receive the following message, you will have to proceed with the installation of the compiler:

~bash: gcc: command not found  

GCC can be installed using the default repositories of your package manager. Depending on your distribution, the package manager will be vary-yum for a Red Hat Linux-based distribution, apt for Debian and Ubuntu, yast for SuSE Linux, and so on. Here is the typical way to proceed with the download and installation of the GCC package:

[root@example.com ~]# yum groupinstall "Development Tools"  

If you use apt-get, execute the following command:

[root@example.com ~]# apt-get install build-essentials

If you use another package manager with a different syntax, you will probably find the documentation with the man utility. Either way, your package manager should be able to download and install GCC correctly, after having resolved dependencies automatically. Note that this command will not only install GCC, it also proceeds with downloading and installing all common requirements for building applications from source, such as code headers and other compilation tools.

The PCRE library

The Perl Compatible Regular Expression (PCRE) library is required for compiling Nginx. The rewrite and HTTP core modules of Nginx use PCRE for the syntax of their regular expressions, as we will discover in later chapters. You will need to install two packages—pcre and pcre-devel. The first one provides the compiled version of the library, whereas the second one provides development headers and sources for compiling projects, which are required in our case.

Here are some example commands that you can run in order to install both the packages.

Using yum, execute the following command:

[root@example.com ~]# yum install pcre pcre-devel

Or you can install all PCRE-related packages using the following command:

[root@example.com ~]# yum install pcre*

If you use apt-get, use the following command:

[root@example.com ~]# apt-get install libpcre3 libpcre3-dev

If these packages are already installed on your system, you will receive a message saying something like nothing to do; in other words, the package manager did not install or update any component:

Both components are already present on the system.

The zlib library

The zlib library provides developers with compression algorithms. It is required for the use of .gzip compression in various modules of Nginx. Again, you can use your package manager to install this component as it is part of the default repositories. Similar to PCRE, you will need both the library and its source-zlib and zlib-devel.

Using yum, execute the following command:

[root@example.com ~]# yum install zlib zlib-devel

Using apt-get, execute the following command:

[root@example.com ~]# apt-get install zlib1g zlib1g-dev

These packages install quickly and have no known dependency issues.

OpenSSL

The OpenSSL project is a collaborative effort to develop a robust, commercial-grade, full-featured, and open source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. The project is managed by a worldwide community of volunteers that use the internet to communicate, plan, and develop the OpenSSL toolkit and its related documentation. For more information, visit http://www.openssl.org.

The OpenSSL library will be used by Nginx to serve secure web pages. We thus need to install the library and its development package. The process remains the same here – you install openssl and openssl-devel:

[root@example.com ~]# yum install openssl openssl-devel

Using apt-get, execute the following command:

[root@example.com ~]# apt-get install openssl libssl-dev
Please be aware of the laws and regulations in your own country. Some countries do not allow the use of strong cryptography. The author, publisher, and the developers of the OpenSSL and Nginx projects will not be held liable for any violations or law infringements on your part.

Now that you have installed all of the prerequisites, you are ready to download and compile the Nginx source code.

Left arrow icon Right arrow icon

Key benefits

  • *Discover possible interactions between Nginx and Apache to get the best of both worlds
  • *Learn to exploit the features offered by Nginx for your web applications
  • *Get your hands on the most updated version of Nginx (1.13.2) to support all your web administration requirements

Description

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 book is a detailed guide to setting up Nginx in ways that correspond to actual production situations: as a standalone server, as a reverse proxy, interacting with applications via FastCGI, and more. In addition, this complete direct reference will be indispensable at all stages of the configuration and maintenance processes. This book mainly targets the most recent version of Nginx (1.13.2) and focuses on all the new additions and improvements, such as support for HTTP/2, improved dynamic modules, security enhancements, and support for multiple SSL certificates. 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 so that it does exactly what you need quickly and securely. For more experienced administrators, this book provides different approaches 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.

Who is this book for?

This book is a perfect match to web administrators who are interested in solutions to optimize their infrastructure. Whether you are looking into replacing your existing web server software or integrating a new tool to cooperate with applications that are already up and running, this book is your ideal resource.

What you will learn

  • • Download and install Nginx on your system
  • • Prepare a basic configuration and test your initial setup
  • • Discover the core functionality of the HTTP module
  • • Make the most of first- and third-party Nginx modules
  • • Set up Nginx to work with PHP, Python, and other applications
  • • Learn how to set up Nginx to work with Apache
  • • Fully replace Apache with Nginx
  • • Optimize your architecture with threads or load balancing
  • • Identify errors in configuration and learn basic troubleshooting techniques
  • • Consult the exhaustive directive and module index for reference

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Last updated date : Feb 11, 2025
Publication date : Feb 14, 2018
Length: 348 pages
Edition : 4th
Language : English
ISBN-13 : 9781788621977
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Last updated date : Feb 11, 2025
Publication date : Feb 14, 2018
Length: 348 pages
Edition : 4th
Language : English
ISBN-13 : 9781788621977
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 115.97
NGINX Cookbook
€36.99
Mastering NGINX
€41.99
Nginx HTTP Server
€36.99
Total 115.97 Stars icon

Table of Contents

12 Chapters
Downloading and Installing Nginx Chevron down icon Chevron up icon
Basic Nginx Configuration Chevron down icon Chevron up icon
HTTP Configuration Chevron down icon Chevron up icon
Module Configuration Chevron down icon Chevron up icon
PHP and Python with Nginx Chevron down icon Chevron up icon
Nginx as an Application Server Chevron down icon Chevron up icon
Apache and Nginx Together Chevron down icon Chevron up icon
From Apache to Nginx Chevron down icon Chevron up icon
Introduction to Load Balancing and Optimization Chevron down icon Chevron up icon
Case Studies Chevron down icon Chevron up icon
Troubleshooting Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.6
(8 Ratings)
5 star 50%
4 star 12.5%
3 star 0%
2 star 25%
1 star 12.5%
Filter icon Filter
Top Reviews

Filter reviews by




Amazon Customer Jan 03, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is a must have, a reference I keep going back to for nginx
Amazon Verified review Amazon
J. Bennett Mar 11, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Great comprehensive guide for NGINX. Covers package or source installation, configuration, and details some of the common configuration examples: php/python, interfacing or replacing Apache. Covers NGINX, NGINX Plus (subscription) being a different install.Pros:- Rapid install of NGINX- Comprehensive configuration, explaining the details of various settings- Addresses common setups, stand alone, interface to Apache, php/python- Case Study includes Wordpress and OwnCloudCons:- Does not detail sites-available & sites-enabled. (May be OS specific, ubuntu 16.04)- Does not provide much guidance on security & system hardening. (SSL/TLS Configuration specifics, redirect http to https & vulnerability TLS with gzip)
Amazon Verified review Amazon
vim_usr Jan 22, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
All the nay sayers on Amazon are rediculous. "The first chapter talks about installing Nginx from the website--most people will just install a package." That's one lazy assumption. The reality is you CAN install a package of nginx, but you SHOULD KNOW how to install nginx from source to get the latest version, you should also understand the runlevels of a Linux system, how system services actually work--all of which is covered in the first chapter. The fact that the author felt the need to address this important topic makes this book stand out, and is absolutely great. The fact that people whine about doing things the "hard way" is...well actually kind of sad. It's a great book, and starts out on the right foot.
Amazon Verified review Amazon
Jesse Glass May 31, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I'm giving this 5 stars simply based on the first chapter. Why?If I'm honest, the 5 stars have NOTHING to do with Nginx per se (I'm only on page 20)However, I learned concepts that are applicable to ALL of Linux (not just Nginx) that have been nagging me for 2 years since I first started learning the OS, they are:1) what the heck is GCC and how/why would I use it2) how to view source code files for a binary BEFORE they are compiled3) modifying config file directives for binary files4) what the "make" command is actually for5) what PCRE is simply put6) better handle on the apt-cache command (I use Kali as my go-to)Is it unreasonable to give 5 stars to a book before you've even finished it? Perhaps, but I'm so happy based on the first 20 pages alone that I'll give it 5 stars anywayI may update this review when I finish, who knows
Amazon Verified review Amazon
Just Some Guy Aug 20, 2022
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Disclaimer - I'm brand new to Nginx, so I don't claim authority on it, at all. Further, this book was published in 2018 and it's now 2022. That said, I enjoyed this book, and found it to be a great intro to Nginx. It's _clearly_ out of date (this book cover Nginx mainline version 1.13.8 – and today's mainline is 1.21.6), but I don't expect that many of the fundamentals at the core of the server have changed much in the past 4 years (I may be wrong, time will tell).The book is a quick and easy read - I read it cover to cover in 2 days. Now mind you, I didn't actually try implementing anything, but just reading the book was quick and easy (which is how I like to approach new technologies, to get an overview of the possibilities before getting my hands dirty).It explains how to install on various systems via the normal package managers, but then goes into detail about how to build from source, which is important since Nginx doesn't support dynamic module configuration/loading at runtime the way Apache does. Any custom modules you want to run must be built in to your executable, and the book starts out with a detailed explanation of how to get that done.The rest of the book mostly covers the core Nginx modules, along with some of the most popular optional ones. The last few chapters get into some useful real-world examples - how to configure Nginx as a reverse proxy, as a load balancer, etc. The authors also walk thru a pretty decent comparison on Nginx vs. Apache (pros/cons of each), as well as a chapter each on how to use both together, or how to migrate an existing Apache setup to Nginx entirely.My biggest complaint about this book is that at least 1/3 of it is just long tables explaining all the various directives and options that various modules and config blocks support. These end up filling a lot of pages, and reading more like a reference manual than a guide book or tutorial. Those tables _do_ offer a lot of little tips on how to best use the various settings (and mistakes or gotchas to avoid) - but I wish there was a lot more sample code from real-world scenarios and tutorials/exercises to complement all the reference tables.Overall, I'm glad I bought this book. It makes me feel like I have a good starting foundation on Nginx - and since this remains the most current book available on Amazon right now (as far as I can tell), it was really my best option anyway! ...Now it's on to installing it, running tests in my local VM, and doing a whole lot of digging on tech blogs and the online docs. Good times.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.

Modal Close icon
Modal Close icon