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 $19.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
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 : 9781788623551
Languages :
Concepts :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

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

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.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
$199.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
$279.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

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.

Modal Close icon
Modal Close icon