Skip to main content

Server Deployment: Nginx, Processes, and Reverse Proxy

The server route gives you more control, but it also means you take on more responsibility.

When Is the Server Route Worth It​

You need it if you require:

  • Login and permission systems
  • Dynamic APIs
  • Databases
  • File uploads
  • Admin panels
  • Custom runtime logic

Only then does the server route make more sense.

For a content-only site, it is usually not the first choice.

A Typical Server Architecture​

Browser
↓
DNS / CDN
↓
Nginx
↓
Application process
↓
Database / Cache / Object storage

What Each Layer Is Roughly Responsible For​

Nginx​

Common responsibilities:

  • Listening on ports 80 / 443
  • Configuring HTTPS
  • Reverse proxying to the backend application
  • Serving static files directly
  • Handling redirects and some cache control

Application Process​

For example, Node, Python, Java, or other server processes that handle APIs and business logic.

Data Layer​

Databases, caches, object storage, and so on.

Why Complexity Increases Significantly With the Server Route​

Because you are no longer just uploading a set of static files. You must maintain long-term:

  • Whether the process stays alive
  • How to view logs
  • How to open ports
  • How to renew certificates
  • How to roll back failed deployments
  • How to protect the server from exposure and misconfiguration

Most Common Mistakes on a First Self-hosted Setup​

1. Directly Exposing the Application Port​

A more common and more stable approach is to have the application listen only on the internal network or localhost, and let Nginx handle external access uniformly.

2. Reverse Proxy Works, But Static Asset Paths Are Broken​

A successful main page request does not mean JS, CSS, and image paths are also correct.

3. Only Getting the Site Running Without Process Management​

When the service crashes it is gone, or after a machine restart the service does not recover automatically.

4. Only Configuring HTTPS From the Browser to the Proxy Layer​

If there is a Cloudflare or proxy layer in front of you, the origin leg of the chain also needs to be considered.

A Practical Deployment Approach​

If you must build your own server, at minimum:

  1. Let Nginx handle the unified entry point
  2. Do not expose the application process directly to the public internet
  3. Separate responsibilities for static assets, application services, and uploaded files
  4. Plan for logs, certificates, backups, and restart strategies in advance

What Are the Real Additional Costs Compared to Static Hosting​

  • Server renewal and maintenance
  • System updates
  • Security surface exposure
  • Troubleshooting complexity
  • Monitoring and backup pressure

So if you are only building documentation and showcase pages, do not rush into self-hosting.