When using Node.js and Express with Nginx as a reverse proxy to handle multiple locations (URL paths), you can configure Nginx to route incoming requests to different Node.js applications running on different ports. This allows you to host multiple Node.js applications on the same server and serve them through different URL paths.

Here's a step-by-step guide to set up Node.js, Express, and Nginx to handle multiple locations:

Step 1: Set Up Node.js and Express Applications Set up your Node.js and Express applications. Each application should listen on a different port and handle its specific functionality.

For example:

  • App1: Running on port 3001, handling requests for /app1
  • App2: Running on port 3002, handling requests for /app2

Ensure you have your applications running and accessible through their respective ports.

Step 2: Configure Nginx Next, configure Nginx to act as a reverse proxy and route requests to the appropriate Node.js applications based on the URL paths.

Edit the Nginx configuration file (typically located at /etc/nginx/nginx.conf or in the /etc/nginx/sites-available/ directory). Create a new server block for each application.

nginx
# App1 server { listen 80; server_name example.com; # Replace with your domain name or server IP location /app1 { proxy_pass http://localhost:3001; } # Add other configuration options as needed } # App2 server { listen 80; server_name example.com; # Replace with your domain name or server IP location /app2 { proxy_pass http://localhost:3002; } # Add other configuration options as needed }

In the configuration above, we have set up two server blocks for two different Node.js applications, App1 and App2. The location directive specifies the URL path (/app1 and /app2) for which Nginx will proxy the requests to the corresponding Node.js application running on the specified ports (3001 and 3002).

Make sure to adjust the server_name and other configuration options as needed for your specific setup.

Step 3: Restart Nginx After making the changes to the Nginx configuration, save the file and restart Nginx for the changes to take effect.

bash
sudo service nginx restart

Step 4: Access Your Applications With the setup complete, you should be able to access your Node.js applications through Nginx using their respective URL paths. For example:

  • http://example.com/app1 will be routed to App1 running on port 3001.
  • http://example.com/app2 will be routed to App2 running on port 3002.

By using Nginx as a reverse proxy, you can effectively handle multiple locations and applications with different URL paths on the same server, improving performance and simplifying your application deployments.

Have questions or queries?
Get in Touch