Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

How to install and configure nginx in CentOS 7 / RHEL 7?

Step 1 – Configure Nginx repo for CentOS 7

$ vi /etc/yum.repos.d/nginx.repo

Append following for CentOS 7.x:

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

Step 2 – Configure Nginx repo for RHEL 7

A note about configuring Nginx repo for RHEL 7

Create or edit file using vi text editor:
$ vi /etc/yum.repos.d/nginx.repo

Append following for RHEL (Red Hat Enterprise Linux) version 7.x:

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

Step 3 – Install Nginx on CentOS 7 & RHEL 7

To install latest stable nginx server, run the following yum command:
$ sudo yum update
$ sudo yum install nginx


Step 4 – Start/stop/restart nginx server


$ sudo systemctl enable nginx
$ sudo systemctl start nginx
$ sudo systemctl stop nginx
$ sudo systemctl restart nginx
$ sudo systemctl status nginx

Step 5 – Open port 80 and 443 using firewall-cmd

You must open and enable port 80 and 443 using the firewall-cmd command:
$ sudo firewall-cmd --permanent --zone=public --add-service=http
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --reload

Step 6 – Test it

Verify that port 80 or 443 opened using ss command:
$ sudo ss -tulpn

You can also use the curl command to get same info using the cli:
$ curl -I http://10.21.136.13
$ curl http://10.21.136.13

Step 7 – Configure Nginx server

- Config dir – /etc/nginx/
- Master/Global config file – /etc/nginx/nginx.conf
- Port 80 http config file – /etc/nginx/conf.d/default
- TCP ports opened by Nginx – 80 (HTTP), 443 (HTTPS)
- Document root directory – /usr/share/nginx/html

To edit files use a text editor such as vi
$ sudo vi /etc/nginx/conf.d/default

You can upload or copy your html/css/js and images to /usr/share/nginx/html/
$ cd /usr/share/nginx/html/
$ sudo cp /backups/theos.in/*.html .
$ sudo cp /backups/theos.in/*.css .
Rajesh Kumar
Follow me