How to Install Nginx Mainline Version on CentOS7

The official Nginx release has two versions: stable version and mainline version. The mainline version contains the newest and greatest cutting edge features and as the name implies, the stable version aims to be more stable. If you are a person like me who always like to be on the bleeding edge, then the mainline version of Nginx is your friend.

This tutorial explains how to install Nginx mainline version (Nginx 1.9.12 at the time of this writting) on CentOS7. Nginx 1.9.12 added Huffman encoding of response headers in HTTP/2 and the “worker_cpu_affinity” directive now supports more than 64 CPUs. There are also various bugfixes for OpenSSL, HTTP/2 etc.  So Let’s install it on CentOS7!

Backup

If you have installed Nginx before, backup your configuration file to the home directory and then remove Nginx.

sudo cp /etc/nginx/nginx.conf /etc/nginx/conf.d/* ~

sudo yum remove nginx

Install Nginx Mainline Version on CentOS7

Download Nginx signing key.

wget http://nginx.org/keys/nginx_signing.key

Import it the the rpm keyring.

sudo rpm --import nginx_signing.key

Create a repo file under /etc/yum.repo.d/ directory.

sudo nano /etc/yum.repos.d/nginx.repo

Paster the following lines to this file.

[nginx.org]
name=nginx.org repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1

install nginx mainline version on CentOS7

Explanation

  • Text contained in square brackets [] is the alias of this repository.
  • name=nginx.org repo specifies the name of this repository
  • baseurl= specifies where to download nginx package from
  • gpgkcheck=1 means enable checking the integrity of package using GPG signing key once package is downloaded
  • enabled=1 means this repository is enabled. If its value is 0, then this repository is disabled

Save and close the file. Now update repositories and install Nginx

sudo yum update && sudo yum install nginx

Start Nginx Web server and enable autostart on system boot with systemctl.

sudo systemctl start nginx

sudo systemctl enable nginx

Check Nginx version

[user@www ~]$ nginx -v
nginx version: nginx/1.9.12

Check Nginx status

sudo systemctl status nginx

Output

● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2016-03-09 03:36:30 EST; 3min 40s ago
Docs: http://nginx.org/en/docs/
Main PID: 13665 (nginx)
CGroup: /system.slice/nginx.service
├─13665 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─13666 nginx: worker process

sudo systemctl status nginx

The official Nginx repository only contains x86_64 packages for CentOS7. If you use 32 bit CentOS 7 server, then you can download Nginx source code and compile it.

Rate this tutorial
[Total: 1 Average: 5]

Leave a Comment

  • Comments with links are moderated by admin before published.
  • Your email address will not be published.
  • Use <pre> ... </pre> HTML tag to quote the output from your terminal/console.
  • Please use the community (https://community.linuxbabe.com) for questions unrelated to this article.
  • I don't have time to answer every question. Making a donation would incentivize me to spend more time answering questions.

The maximum upload file size: 2 MB. You can upload: image. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here