Setting Up a Reverse Proxy with Nginx Proxy Manager
A reverse proxy routes traffic to your applications and handles SSL automatically. Here is how to set it up with zero command-line experience.
When you run multiple applications on one server, you need a traffic director. That is what a reverse proxy does: it looks at incoming requests, figures out which application they are meant for, and routes them accordingly. Nginx Proxy Manager makes this point-and-click simple.
Why You Need a Reverse Proxy
Without a reverse proxy, each application needs its own port. Your CRM might run on port 8080, your helpdesk on port 8081, and your wiki on port 8082. Users would need to remember which port goes with which application. With a reverse proxy, every application is accessible at a subdomain: crm.yourdomain.com, help.yourdomain.com, wiki.yourdomain.com. All on port 443 with SSL. Clean and professional.
Installing Nginx Proxy Manager
Create a docker-compose.yml file:
services:
nginx-proxy-manager:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "81:81"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencryptRun docker compose up -d. The admin panel is now at http://your-server-ip:81. Default login: admin@example.com, password changeme. Change the password immediately.
Adding Your First Application
Click Proxy Hosts, then Add Proxy Host. Enter the domain name (crm.yourdomain.com), the container name and port (crm-app:8080), and check WebSocket Support if the application uses it. Switch to the SSL tab, select Request a new SSL Certificate, check Force SSL, and enter your email address. Click Save. That is it. Your CRM is now accessible at https://crm.yourdomain.com with a valid SSL certificate that auto-renews.
Adding More Applications
Repeat the process for each application. Every application gets a subdomain. Every subdomain gets SSL. The reverse proxy handles the routing. You manage everything through a web interface with no configuration files to edit and no command-line work required. Adding a new application to your stack takes two minutes.
If configuring servers is not how you want to spend your afternoon, VPS1 does this for you. We set up your reverse proxy, SSL, and every application. You get the URLs and move on with your day.
More articles
How to Deploy BTCPay Server: Accept Bitcoin Payments with Zero Platform Fees
BTCPay Server lets you accept Bitcoin and Lightning payments with no platform fees. Only standard Bitcoin network fees apply. Here is how to deploy it with Docker Compose.
Self-Hosted Crypto Payment Processors: BTCPay Server, Bitcart, and SHKeeper Compared
Accept Bitcoin and cryptocurrency payments directly with no platform fees, no intermediaries, and no KYC. Here is how BTCPay Server, Bitcart, and SHKeeper compare.
How to Deploy SHKeeper: Accept Crypto Payments with WooCommerce in 30 Minutes
SHKeeper supports Bitcoin, Ethereum, USDT, USDC, and 19+ cryptocurrencies with a free WooCommerce plugin. Zero platform fees -- only standard network fees apply.