How can you redirect HTTP traffic to HTTPS in Nginx? nginx

How can you redirect HTTP traffic to HTTPS in Nginx?


Nov. 12, 2023

How to Redirect HTTP Traffic to HTTPS in Nginx

If you are running a website with Nginx as the webserver, it is highly recommended to use HTTPS (HTTP over SSL/TLS) to secure the communication between your website and its users. In this article, we will guide you on how to redirect all HTTP traffic to HTTPS in Nginx.

Prerequisites

Before proceeding, make sure you have the following:

  • An active domain or subdomain pointing to the Nginx server.
  • Nginx web server installed and configured.
  • SSL/TLS certificate installed on the server. You can obtain an SSL certificate from a trusted certificate authority, or you can use a self-signed certificate for testing purposes.

Step 1: Open Nginx Configuration File

SSH into your Nginx server and open the main Nginx configuration file typically located at /etc/nginx/nginx.conf or within a custom configuration folder specified during installation.

sudo nano /etc/nginx/nginx.conf

Step 2: Locate Server Block Configuration

Within the main configuration file, locate the server block that corresponds to the domain or subdomain you want to redirect HTTP traffic to HTTPS.

  
  server {
      listen 80;
      server_name example.com;
      ...
  }
  
  

Step 3: Add Redirect Configuration

Add the following configuration to the server block, within the existing server block.

  
  server {
      listen 80;
      server_name example.com;
      
      return 301 https://$host$request_uri;
  }
  
  

The return directive with 301 HTTP status code is used to perform a permanent redirect from HTTP to HTTPS. The $host and $request_uri variables are used to construct the redirect URL.

Step 4: Save and Exit

Save the configuration file and exit the text editor.

Step 5: Restart Nginx

Finally, restart the Nginx service to apply the changes.

sudo service nginx restart

Conclusion

By adding the redirect configuration to your Nginx server block, you have successfully redirected all HTTP traffic to HTTPS. This ensures the secure transfer of data between your website and its visitors, protecting sensitive information and maintaining trust.

Remember to always keep your SSL/TLS certificates up to date and properly configure your Nginx server for a secure web hosting environment.

nginx