How to Start, Stop, and Restart Nginx (systemctl & Nginx Commands)

August 28, 2024

Introduction

Nginx is a powerful server application that routes network traffic. It's often used as a reverse proxy server but can also be configured as a web server.

One of the most common operations you will encounter is starting, stopping, and restarting the Nginx service.

In this tutorial, learn how to start, stop, and restart the Nginx service.

Commands to stop, start, and restart Nginx in linux

Prerequisites

  • A system with Nginx installed and configured.
  • Access to a terminal window or command line.
  • A user account with sudo or root privileges.
  • An existing SSH connection to a remote system (if you're working remotely).

Note: If you haven't installed Nginx yet, refer to our guide on Installing Nginx on Ubuntu.

Start, Stop, and Restart Nginx with systemctl

Managing Nginx requires knowing how to start, stop, and restart the service. These commands are essential when applying new changes or when troubleshooting issues.

systemd is the default service manager for modern versions of Linux distributions. The systemd manager functions through systemctl, a base Linux command. That means it can be used for any Linux service, including Nginx.

The sections below show how to run these commands and control the Nginx service using systemctl.

How to View Status of Your Nginx Server

Nginx runs as a service on your server. It actively runs in the background, even if it is not visible on the screen. You can display the status of the Nginx service by entering the following command in a terminal window:

sudo systemctl status nginx

The system will switch to status mode and display information about the Nginx service. The status shows as one of the following:

  • If the service is running (active), the third line shows a green active (running) status.
  • If Nginx is not running, it will appear inactive in white.
  • If something went wrong and Nginx couldn't load, you'll see a red status failed, with some information about the failure.
Checking the status of an Nginx webserver in terminal

Press q to reactivate the Bash prompt and exit the status mode.

Stop and Start Nginx

systemctl can be used to start and stop the Nginx service.

To stop Nginx, run the following command:

sudo systemctl stop nginx
Terminal command to stop an Nginx web server

To start Nginx, execute the systemctl command with the start option:

sudo systemctl start nginx
systemctl command to start the Nginx service

How to Restart Nginx

There are several ways to restart the Nginx service. The methods differ depending on whether the configuration changes are minor or major.

Gracefully Restart Nginx

When refreshing Nginx after changing the configuration, reload the service gracefully. That shuts down old processes and restarts new ones with the new configuration.

Use the systemctl Linux command to reload the Nginx service:

sudo systemctl reload nginx

Note: Nginx cannot be reloaded if the the Nginx service is not active.

Force Restart Nginx

For major configuration changes, forcefully restart Nginx. This closes the whole service and subprocesses and restarts the whole package.

Enter the following command:

sudo systemctl restart nginx

Restart vs. Reload Nginx

The reload command keeps the Nginx server running as it reloads updated configuration files. If Nginx notices a syntax error in the configuration files, the reload is aborted, and the server keeps running based on old configuration files. Reloading is safer than restarting Nginx.

The restart command shuts down the server, including all related services, and powers it on again. Restart Nginx only when making significant configuration updates, such as changing ports or interfaces. This command will force shut down all worker processes.

Configure Nginx to Launch on Boot

Use the enable option with the systemctl command to enable Nginx:

sudo systemctl enable nginx

Use the disable option with the systemctl command to disable Nginx:

sudo systemctl disable nginx

Start, Stop, and Reload Nginx with the Nginx Command

Nginx has a set of built-in tools for managing the service that can be accessed using the Nginx command. See the examples below to access and use these tools.

Nginx Start

To start Nginx and related processes, enter the following:

sudo /etc/init.d/nginx start

If it runs successfully, the terminal output will display a message that the process has started.

Nginx Restart

To force close and restart Nginx and related processes:

sudo /etc/init.d/nginx restart
Restart nginx with nginx restart command.

Nginx Stop

To disable or stop the Nginx service forcefully, enter the following:

sudo /etc/init.d/nginx stop
Stop the Nginx service with the nginx stop command

Alternatively, use:

sudo nginx -s stop

Nginx Reload

To gracefully stop and restart Nginx and related processes, use the command:

sudo /etc/init.d/nginx reload
Reload Nginx with in-built Nginx reload command.

Alternatively, you can use the nginx -s command to pass instructions directly to Nginx:

sudo nginx -s reload

Nginx Quit

To gracefully close the Nginx service, use the quit instruction with the nginx -s command:

sudo nginx -s quit

Conclusion

This article has outlined several methods for starting, stopping, and restarting Nginx on your server. Use these commands for the most common operations when managing an Nginx web server.

Next, see how to set up Nginx reverse proxy.

Was this article helpful?
YesNo
Milica Dancuk
Milica Dancuk is a technical writer at phoenixNAP with a passion for programming. With a background in Electrical Engineering and Computing, coupled with her teaching experience, she excels at simplifying complex technical concepts in her writing.
Next you should read
How to Install Nginx on Ubuntu 22.04
January 18, 2024

Nginx is a widely used open-source web server. This tutorial explains installing Nginx on Ubuntu 22.04 and managing Nginx processes.
Read more
How to Start, Stop, and Restart Services in Linux
March 27, 2024

In most modern Linux operating systems, managing a service is quite simple when it comes to basic commands.
Read more
How to Redirect HTTP to HTTPS in Nginx
March 6, 2024

Nginx (pronounced as "engine-x") is a Linux-based web server and proxy application.
Read more
How to Set up & Use NGINX as a Reverse Proxy
March 14, 2024

Nginx (pronounced as "engine-x") is a Linux-based web server and reverse proxy application. Learn how to set it up as a reverse proxy.
Read more