How to install and set up Nginx on Windows

Nginx is a powerful web server and reverse proxy solution known for its speed, scalability, and reliability. While it’s widely used in Linux environments, Nginx can also be installed on Windows. In this blog post, I will guide you on “How to install and set up Nginx on Windows machine”.

Why Use Nginx on Windows?

Before diving into the installation, let’s understand why Nginx is a great choice:

  • High Performance: Nginx can handle a large number of concurrent connections, making it perfect for high-traffic websites.
  • Load Balancing: It distributes traffic across multiple servers, ensuring no single server is overwhelmed.
  • Reverse Proxy: Nginx forwards client requests to backend servers, adding an extra layer of security and efficiency.
  • Ease of Configuration: Its configuration is simple, making it easy to set up virtual hosts, caching, and more.
install and set up Nginx

Now, let’s dive into the installation process.

Step 1: Download Nginx for Windows

Nginx provides a version compatible with Windows systems. Follow these steps to download Nginx:

  • Go to the official Nginx website.
  • Scroll down to the Mainline Version section.
  • Download the Nginx for Windows zip file.

The latest stable version is recommended, but the mainline version is suitable if you need the latest features and improvements.

Step 2: Extract Nginx

Once you’ve downloaded the zip file, extract it using any decompression software (like WinRAR or 7-Zip):

  • Right-click the downloaded zip file.
  • Select Extract Here or specify a folder.
  • Rename the extracted folder to something simple like nginx for easier access.

Move the nginx folder to a location of your choice, such as C:\nginx.

Step 3: Run Nginx

Running Nginx on Windows is quite simple:

  • Open the extracted nginx folder.
  • Find nginx.exe inside the C:\nginx folder.
  • Double-click nginx.exe to start the server.

Alternatively, you can start Nginx using the command line:

  • Press Win + R, type cmd, and press Enter.
  • In the command prompt, navigate to the Nginx directory:
cd C:\nginx
  • Start Nginx by running the following command:
start nginx

At this point, Nginx should be running. You can verify this by opening your browser and visiting http://localhost. If you see the Nginx welcome page, the server is running correctly.

Step 4: Basic Configuration

Now that Nginx is up and running, let’s look at some basic configuration.

  • Navigate to the C:\nginx\conf folder.
  • Open the nginx.conf file using any text editor (Notepad++ or VS Code is recommended).

This file contains the configuration details for your Nginx server. A few key sections to note:

Server Block (Virtual Hosts)

The server block allows you to define multiple virtual hosts. By default, the configuration listens to requests on port 80. You can modify or add additional server blocks.

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

You can modify server_name to point to your domain or local IP address.

Logging

Nginx provides detailed logs of server activity. The nginx.conf file allows you to specify where the logs will be stored:

access_log  logs/access.log  main;
error_log   logs/error.log   warn;

Restarting Nginx

After making changes to the configuration, you must restart Nginx for them to take effect. You can do this by stopping and starting Nginx again:

  • To stop Nginx, open the command prompt and run:
nginx -s stop
  • To start Nginx again, run:
nginx
  • To restart Nginx (graceful stop and start), use:
nginx -s reload

Make sure you’re running these commands in the directory where nginx.exe is located or provide the full path to nginx.exe.

Step 5: Installing Nginx as a Windows Service

Running Nginx manually every time your computer restarts may not be ideal. To set up Nginx as a Windows service:

  • Download NSSM (Non-Sucking Service Manager).
  • Extract the NSSM zip file.
  • Open the command prompt as an administrator.
  • Navigate to the NSSM folder and install Nginx as a service:
nssm install Nginx

A GUI will pop up, prompting you to select the path to nginx.exe. Navigate to C:\nginx\nginx.exe and click Install Service.

Nginx will now start automatically whenever your system boots up.

Step 6: Configuring Firewall Rules

To ensure Nginx can handle external requests, you may need to configure your firewall:

  • Open Windows Firewall and go to Advanced Settings.
  • Click on Inbound Rules, and then on the right, click New Rule.
  • Select Port and click Next.
  • Choose TCP and specify port 80 (for HTTP) or 443 (for HTTPS).
  • Follow the prompts and name the rule “Nginx HTTP” or “Nginx HTTPS.”

Conclusion

You’ve now successfully installed and set up Nginx on your Windows machine. Whether you’re using it for web hosting, reverse proxying, or load balancing, Nginx is a versatile tool that can enhance your web infrastructure. Make sure to keep your server updated and check out advanced configurations like SSL termination, caching, and more.

Leave a comment