CentOS

How to Install Nginx on CentOS

How to Install Nginx on CentOS

Nginx is an open-source and the most popular web server which is more flexible and lightweight than Apache server. It is designed for best stability and performance and can handle multiple client requests simultaneously with limited resources. It can also serve as a load balancer and a reverse proxy server.

In an earlier post, we described the installation of Nginx on Ubuntu. This post will describe the installation of Nginx on CentOS.

Requirements:

You will require:

  • CentOS system
  • A user with sudo access

Note: We will be demonstrating the procedure on CentOS 8 machine.

Step 1: Install Nginx on CentOS

To install Nginx on CentOS, we can use the dnf package manager. Use the command below to install Nginx on your CentOS system:

$ sudo dnf install nginx

Provide sudo password and hit y when prompted with y/N. After that installation will start.

After the Nginx server is installed, you should see a similar output:

Step 2: Start and Enable Nginx on Boot

After the installation, you can start Nginx using the command below:

$ sudo systemctl start nginx

To verify if the service has started running, use the command below:

$ sudo systemctl status nginx

If you do not want to manually start the Nginx each time the server is started, you can enable it to start automatically on server boot. To start the Nginx service automatically at system boot, here is the command:

$ sudo systemctl enable nginx

Step 3: Allow Nginx Traffic in Firewall

In CentOS, the firewall is enabled by default and hence it blocks access to port 80 and 443 used by the Nginx web server. To allow external HTTP and HTTPS traffic towards your NGINX server, you will need to add a rule in the firewall. Remember if you are just testing Nginx server from your local system, then you do not need to add this rule.

Run the command below to allow access to HTTP traffic coming to your Nginx server:

$ sudo firewall-cmd --permanent --add-service=http

Then run the command below to allow access to HTTPS traffic coming to your Nginx server:

$ sudo firewall-cmd --permanent --add-service=https

Then run the command below to reload firewalld:

$ sudo firewall-cmd --reload

To check if the rule has been added, use the command below:

$ sudo firewall-cmd --permanent --list-all

In the output of the above command, you should see http listed in the services line.

Step 4: Test Nginx Server

Now to test if the Nginx server is working, access your server’s IP address in a web browser. If you don’t know how to find the IP address of a system, visit this link.

http://IP-address

If the Nginx server has been installed successfully, you should see the following Nginx default page.

Nginx Management Commands

Other than to start and enable the Nginx server commands (as discussed above), there are few more commands that you will find helpful in managing the Nginx server. We are sharing some of them:

To stop Nginx service, the command would be:

$ sudo systemctl stop nginx

To restart Nginx service, the command would be:

$ sudo systemctl restart nginx

To disable Nginx service, the command would be:

$ sudo systemctl disable nginx

When you make any configuration changes, you will need to reload firewall configuration. Here is the command you can use:

$ sudo systemctl reload nginx

Nginx Main Files and Directories

Here are some main Nginx files and directories:

  • /etc/nginx: Nginx configuration files can be found in this directory.
  • /etc/nginx/nginx.conf: This is the Nginx global configuration file
  • /etc/nginx/conf.d: Nginx server block configuration files can be found in this directory
  • /usr/share/nginx/html: Web content served by the Nginx server can be found in this directory

Uninstall Nginx

If you ever need to remove/uninstall Nginx from your CentOS machine, you can do so as follows:

Stop Nginx services as follows:

$ sudo systemctl stop nginx.service

Then to remove Nginx, use the command below:

$ sudo yum remove nginx

To remove Nginx configuration and log files too, use the command below:

$ sudo rm -R /etc/nginx
$ sudo rm -R /var/log/nginx

There you have how to install the Nginx server on a CentOS machine and add a firewall rule to allow traffic coming towards the Nginx server. In the end, we’ve discussed how to remove Nginx from CentOS.

Similar Posts