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 regular web server.
One of the most common operations you will encounter is starting, stopping, and restarting the Nginx web server.
In this tutorial, learn how to start, stop, and restart the Nginx service.
- 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 guides on Installing Nginx on Ubuntu or Installing Nginx on CentOS 8.
Start, Stop, and Restart Nginx with systemctl
How to View Status of Your Nginx Server
Nginx runs as a service on your server. That means that it should be actively running in the background, even if you don’t see anything 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 into a status mode, displaying lots of information about the Nginx service.
- If the service is running (active), you’ll see a green active (running) status in the third line.
- If Nginx is not running, it will display as inactive in standard white.
- If something went wrong and Nginx couldn’t load, you’ll see a red status failed, with some information about the failure.
q to reactivate the bash prompt.
SystemD is the default service manager on modern versions of Linux distributions (Ubuntu 20.04/18.04/16.04, CentOS 7/7, and Debian 9/10). The SystemD manager functions through the
systemctl command is a base Linux command. That means that it can be used for any Linux service.
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
To start Nginx, execute the
systemctl command with the
sudo systemctl start nginx
How to Restart Nginx
Gracefully Restart Nginx
If you’re refreshing Nginx after changing the configuration, it’s best to gracefully reload the service. That shuts down old processes and restarts new ones with the new configuration.
systemctl Linux command to reload the Nginx service. Run the following command:
sudo systemctl reload nginx
Note: Nginx cannot be reloaded if the the Nginx service is not active.
Force Restart Nginx
For major configuration changes, you can force a full restart of Nginx. This force-closes the whole service and sub-processes, and restarts the whole package.
Enter the following command:
sudo systemctl restart nginx
Restart vs Reload Nginx
reload command keeps the Nginx server running as it reloads updated configuration files. If Nginx notices a syntax error in any of the configuration files, the reload is aborted and the server keeps running based on old config files. Reloading is safer than restarting Nginx.
restart command will shut down the server including all related services and power 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
enable option with the
systemctl command to enable Nginx:
sudo systemctl enable nginx
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.
To start Nginx and related processes, enter the following:
sudo /etc/init.d/nginx start
If run successfully, the terminal output will display the following:
Output [ ok ] Starting nginx (via systemctl): nginx.service.
To force close and restart Nginx and related processes:
sudo /etc/init.d/nginx restart
As an alternative, use the
nginx -s command:
sudo nginx -s restart
To disable or stop the Nginx service, enter the following:
sudo /etc/init.d/nginx stop
sudo nginx -s stop
To gracefully stop and restart Nginx and related processes, use the command:
sudo /etc/init.d/nginx reload
Alternately, you can use the
nginx -s command to pass instructions directly to Nginx:
sudo nginx -s reload
Force close the Nginx service by using the
quit instruction with the
nginx -s command:
sudo nginx -s quit
This article has outlined several methods to start, stop, and restart Nginx on your server. Use these commands for the most common operations when managing an Nginx web server.