Docs / Web Servers / Nginx Reverse Proxy for Multiple Applications

Nginx Reverse Proxy for Multiple Applications

By Admin · Mar 11, 2026 · Updated Apr 23, 2026 · 4 views · 3 min read

In this article, we'll walk through the complete process of working with nginx in a server environment. Understanding reverse-proxy is essential for maintaining a reliable and performant infrastructure.

Prerequisites

  • Root or sudo access to the server
  • Basic familiarity with the Linux command line
  • A web server installed (Nginx or Apache)
  • SSL certificate or Certbot for Let's Encrypt

Server Installation

Before making changes to the configuration, always create a backup of the existing files. This ensures you can quickly roll back if something goes wrong during the setup process.


# /etc/nginx/sites-available/nginx.conf
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Make sure to restart the service after applying these changes. Some settings require a full restart rather than a reload to take effect.

Performance Considerations

After applying these changes, monitor the server's resource usage for at least 24 hours to ensure stability. Tools like htop, iostat, and vmstat can provide real-time insights into system performance.

Virtual Host Configuration

Performance benchmarks show that properly tuned nginx can handle significantly more concurrent connections than the default configuration. The key improvements come from adjusting worker processes and connection pooling.


# Test and reload Nginx configuration
sudo nginx -t
sudo systemctl reload nginx

# Check access and error logs
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

This configuration provides a good balance between performance and resource usage. For high-traffic scenarios, you may need to increase the limits further.

SSL/TLS Setup

Performance benchmarks show that properly tuned nginx can handle significantly more concurrent connections than the default configuration. The key improvements come from adjusting worker processes and connection pooling.


# Install Nginx with modules
sudo apt update
sudo apt install -y nginx

# Enable the site
sudo ln -s /etc/nginx/sites-available/nginx.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

Make sure to restart the service after applying these changes. Some settings require a full restart rather than a reload to take effect.

Security Implications

Before making changes to the configuration, always create a backup of the existing files. This ensures you can quickly roll back if something goes wrong during the setup process.

  • Enable automatic security updates for critical patches
  • Test your backup restore procedure monthly
  • Review log files weekly for anomalies
  • Keep your system packages updated regularly
  • Monitor disk space usage and set up alerts

Common Issues and Solutions

  • Connection timeout: Verify your firewall rules allow traffic on the required ports. Use ss -tlnp to confirm the service is listening on the expected port.
  • High memory usage: Review the configuration for memory-related settings. Reduce worker counts or buffer sizes if running on a low-RAM VPS.

Next Steps

With nginx now set up and running, consider implementing monitoring to track performance metrics over time. Regularly review your configuration as your workload changes and scale resources accordingly.

Was this article helpful?