DEV Community

Toby Chui
Toby Chui

Posted on

Zoraxy vs Nginx Proxy Manager

Recently I got a lot of questions from Nginx Proxy Manager users asking how to switch over to Zoraxy. As the developer of Zoraxy, this sometime bothers me as Zoraxy, at its core, it is not powered by the same engine as Nginx Proxy Manager, but an independently developed reverse proxy core named "Dynamic Proxy" (or dpcore for short).

For those who have never heard of Zoraxy, here is a brief introduction of Zoraxy.

🌐 What is Zoraxy?

Zoraxy is a general purpose HTTP reverse proxy and forwarding tool, with tons of different network utilities and management feature that suitable for a small homelab setup.

Although it provides a lot of function, the main purpose for this project is to act as the gateway of my own homelab, which provide web services for my ArozOS instance (web desktop system that I can access all my storage nodes) and reverse proxy to my Apache web server which is hosting my blog and personal homepage. But most people find its reverse proxy tool and ACME tool helpful, and promoting it is a Nginx Proxy Manager replacement.

More details can be found on the project homepage

Reverse Proxy Server | Zoraxy

A reverse proxy server and cluster network gateway for noobs

favicon zoraxy.aroz.org

Source code is available on my Github

GitHub logo tobychui / zoraxy

A general purpose HTTP reverse proxy and forwarding tool. Now written in Go!

Zoraxy

A general purpose HTTP reverse proxy and forwarding tool. Now written in Go!

Features

  • Simple to use interface with detail in-system instructions
  • Reverse Proxy (HTTP/2)
    • Virtual Directory
    • WebSocket Proxy (automatic, no set-up needed)
    • Basic Auth
    • Alias Hostnames
    • Custom Headers
  • Redirection Rules
  • TLS / SSL setup and deploy
    • ACME features like auto-renew to serve your sites in https
    • SNI support (and SAN certs)
    • DNS Challenge for Let's Encrypt and these DNS providers
  • Blacklist / Whitelist by country or IP address (single IP, CIDR or wildcard for beginners)
  • Global Area Network Controller Web UI (ZeroTier not included)
  • Stream Proxy (TCP & UDP)
  • Integrated Up-time Monitor
  • Web-SSH Terminal
  • Utilities
    • CIDR IP converters
    • mDNS Scanner
    • Wake-On-Lan
    • Debug Forward Proxy
    • IP Scanner
  • Others
    • Basic single-admin management mode
    • External permission management system for easy system integration
    • SMTP config for password reset

Downloads

Windows / Linux (amd64) / Linux (arm64)

For other systems or architectures…

⚖️ The core difference of Zoraxy and Nginx Proxy Manager (NPM)

The core difference of Zoraxy and NPM is that NPM is based on a stable, old reverse proxy product named "Nginx". The NPM technically is just a PHP web interface that help you inject configurations into the Nginx server and do some basic management work for you like restarting it after the configuration is written. NPM has been here for long enough that basically all open source project use the Nginx proxy server behavior as the de-facto standard, even if it is sometime not following latest HTTP standard due to legacy reasons.

Meanwhile in Zoraxy, everything is done differently. The core reverse proxy feature of Zoraxy is powered by its "Dynamic Proxy", which as its name suggested, works dynamically instead of statically. Compare to Nginx, where any config change will require a service restart, Zoraxy's config can be dynamically changed in runtime with no downtime, together with some smart logic to handle domain sniffing, runtime protocol switch and behavior adjustment due to some other outdated open source project weird behavior, make it one of the best option for beginner who have no idea what they are doing and want to tinker around.

📘 Quick Comparison

Here is a quick comparison between Zoraxy and NPM

Zoraxy Nginx Proxy Manger
HTTP(s) Reverse Proxy Yes Yes
WebSocket support Yes Yes
Stream Proxy (TCP / UDP) Yes Yes
Beginner Friendly UI Yes Yes
ACME Support Yes Yes
SNI Support Yes No (Require manually linking certificate to host name)
Access Control Easy (IP / GeoIP based access control rule, adjustable from web UI) Advance (Manually input nginx settings)
Request handling speed Slower Faster
Restart required on config change No Yes
Level of Customization Low High
Level of Automation High Low
Require Docker No Yes
Runs on Windows Yes (Natively) Kinda (with some magic)
Reverse Proxy Engine DPCore (Modify from Golang offical http proxy) Nginx

🤔 Which one should I choose for my homelab?

This question really depends on your own knowledge in homelab networking and self-hosting.

npm

Nginx Proxy Manager

  • More users: if you have any question, you can easily find someone to help you
  • Faster: Nginx is a stable and old reverse proxy server that have been intensively optimized for performance. With its static configuration design, all request can be handled in faster speed and allowing much better resources utilization. Suitable for use cases where you are tight on computing power or hardware resources like hosting on a single Raspberry Pi.
  • Higher customization: NPM gives you much better control on what to do with the routing. If you have some specific setup that require detail fine tuning, NPM (with custom configuration) will be a better option here.

zoraxy

Zoraxy

  • Newer: Zoraxy is less than 3 years old, making its UI and UX design much more modern and user friendly.
  • Automation: Zoraxy have tons of automation logic in place, allowing it to do runtime adjustment with minimal setup input. For example, it has automatic TLS sniffing (for automatic upstream configuration), SNI (picking the correct certificate for you base on request hostname) and automatic websocket proxy (no need to manually setup websocket proxy per hostname. Zoraxy will do an automatic protocol switch based on header sniffing & matching).
  • No docker: Zoraxy runs without docker, that means with a single binary file, you can easily deploy it everywhere easily without going through the docker setup. It even works on Windows!

Summary of Zoraxy vs. Nginx Proxy Manager

Zoraxy is a modern HTTP reverse proxy and forwarding tool designed for small homelab setups. Its distinguishing feature is its Dynamic Proxy Core (DPCore), enabling real-time configuration changes without restarts. It offers tools like ACME support, SNI, and access control while being highly automated and beginner-friendly. Zoraxy doesn't require Docker and runs natively on Windows, making it accessible for users with minimal technical knowledge. However, it has lower customization options and slower request handling compared to Nginx Proxy Manager (NPM).

Nginx Proxy Manager (NPM) relies on the robust, mature Nginx engine with a PHP-based UI for configuration management. Known for its speed and high resource efficiency, NPM excels in performance and fine-tuning for advanced setups. However, its static configuration requires service restarts for changes, and it lacks modern automation features.

Key Differences

Zoraxy: Dynamic, automated, Docker-free, beginner-friendly, runs on Windows.

NPM: Faster, highly customizable, optimized for resource-constrained environments, requires Docker.

Choose NPM for performance and customization, especially on limited hardware like Raspberry Pi. Opt for Zoraxy for simplicity, automation, and a modern interface. Other than that, there are also other open source reverse proxy project like Caddy, which are also worth taking a look into if you are into a more professional solution.

That is all for today, see you in the future posts :)

Top comments (0)