Nginx VS Caddy

Compare Nginx vs Caddy and see what are their differences.

Nginx

An official read-only mirror of http://hg.nginx.org/nginx/ which is updated hourly. Pull requests on GitHub cannot be accepted and will be automatically closed. The proper way to submit changes to nginx is via the nginx development mailing list, see http://nginx.org/en/docs/contributing_changes.html (by nginx)
Web
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
Nginx Caddy
97 401
20,165 53,568
1.2% 1.8%
8.9 9.4
8 days ago 5 days ago
C Go
- Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Nginx

Posts with mentions or reviews of Nginx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-04.
  • How to securely reverse-proxy ASP.NET Core web apps
    3 projects | dev.to | 4 Apr 2024
    However, it's very unlikely that .NET developers will directly expose their Kestrel-based web apps to the internet. Typically, we use other popular web servers like Nginx, Traefik, and Caddy to act as a reverse-proxy in front of Kestrel for various reasons:
  • Ask HN: Is nginx.org (the domain-name itself) gone?
    1 project | news.ycombinator.com | 22 Mar 2024
  • Freenginx: Core Nginx Developer Announces Fork of Popular Web Server
    1 project | news.ycombinator.com | 13 Mar 2024
    > I actually don't understand why I am seeing arguments like this all the time.

    Have a look at:

    https://github.com/nginx/nginx/blob/master/src/http/modules/...

    It's got the whole checklist: nginx idiosyncratic module system, inline parsing, custom utf conversion, buffer preallocation and adjustments, linked lists, comments about side effects of custom allocator, and probably other things.

    It's not easy to deal with source like that and any serious improvement to that area would effectively be a rewrite anyway.

    Since anything doing work in nginx is a module anyway, it wouldn't even have to be a full rewrite in one go.

  • The Internet is Maintained by 1 Software Developer
    1 project | dev.to | 25 Feb 2024
    According to this article, nGinx is being used to serve 34% of all websites in the world. I checked out who's contributing to nGinx, and just like I thought, the project has 8,208 commits, and 5,366 of those commits was made by 2 software developers; igorsoev and mdounin.
  • [06/52] Accessible Kubernetes with Terraform and DigitalOcean
    4 projects | dev.to | 23 Feb 2024
  • Freenginx.org
    11 projects | news.ycombinator.com | 14 Feb 2024
  • Performance benchmark of PHP runtimes
    7 projects | dev.to | 17 Jan 2024
    Nginx + Roadrunner (fcgi mode)
  • Web CGI programs aren't particularly slow these days
    1 project | news.ycombinator.com | 8 Jan 2024
    Apache’s mod_fastcgi’s last commit was 2 weeks ago:

    https://svn.apache.org/viewvc/httpd/httpd/trunk/

    It’s a fork of what you linked (and was more popular afaik back when fastcgi was state of the art, and apache was the undisputed champion of web servers).

    These days, nginx has more market share than apache, and its fastcgi module is one of the more recently updated ones in its source tree (5 months vs multiple years):

    https://github.com/nginx/nginx/tree/master/src/http/modules

    If I was going to build an embedded web server, I’d start with nostd rust, probably with though axum + tokio, since thats already memory safe-ish.

    If I needed fastcgi for some reason (dynamically loadable endpoints, or os-level isolation), there are at least four implementations of fastcgi for it. No idea if any are decent though.

  • Five Apache projects you probably didn't know about
    8 projects | dev.to | 21 Dec 2023
    APISIX is an API Gateway. It builds upon OpenResty, a Lua layer built on top of the famous nginx reverse-proxy. APISIX adds abstractions to the mix, e.g., Route, Service, Upstream, and offers a plugin-based architecture.
  • Nginx is Probably Fine
    2 projects | /r/programming | 10 Dec 2023
    I suppose you could read the code. https://github.com/nginx/nginx

Caddy

Posts with mentions or reviews of Caddy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-04.
  • How to securely reverse-proxy ASP.NET Core web apps
    3 projects | dev.to | 4 Apr 2024
    However, it's very unlikely that .NET developers will directly expose their Kestrel-based web apps to the internet. Typically, we use other popular web servers like Nginx, Traefik, and Caddy to act as a reverse-proxy in front of Kestrel for various reasons:
  • HTTP/2 Continuation Flood: Technical Details
    2 projects | news.ycombinator.com | 4 Apr 2024
    I think that recompiling with upgraded Go will not solve the issue. It seems Caddy imports `golang.org/x/net/http2` and pins it to v0.22.0 which is vulnerable: https://github.com/caddyserver/caddy/issues/6219#issuecommen....
  • Show HN: Nano-web, a low latency one binary webserver designed for serving SPAs
    8 projects | news.ycombinator.com | 25 Mar 2024
    Caddy [1] is a single binary. It is not minimal, but the size difference is barely noticeable.

    serve also comes to mind. If you have node installed, `npx serve .` does exactly that.

    There are a few go projects that fit your description, none of them very popular, probably because they end up being a 20-line wrapper around http frameworks just like this one.

    [1] https://caddyserver.com/

  • I Deployed My Own Cute Lil’ Private Internet (a.k.a. VPC)
    8 projects | dev.to | 18 Mar 2024
    Each app’s front end is built with Qwik and uses Tailwind for styling. The server-side is powered by Qwik City (Qwik’s official meta-framework) and runs on Node.js hosted on a shared Linode VPS. The apps also use PM2 for process management and Caddy as a reverse proxy and SSL provisioner. The data is stored in a PostgreSQL database that also runs on a shared Linode VPS. The apps interact with the database using Drizzle, an Object-Relational Mapper (ORM) for JavaScript. The entire infrastructure for both apps is managed with Terraform using the Terraform Linode provider, which was new to me, but made provisioning and destroying infrastructure really fast and easy (once I learned how it all worked).
  • Automatic SSL Solution for SaaS/MicroSaaS Applications with Caddy, Node.js and Docker
    1 project | dev.to | 29 Feb 2024
    So I dug a little deeper and came across this gem: Caddy. Caddy is this fantastic, extensible, cross-platform, open-source web server that's written in Go. The best part? It comes with automatic HTTPS. It basically condenses all the work our scripts and manual maintenance were doing into just 4-5 lines of config. So, stick around and I'll walk you through how to set up an automatic SSL solution with Caddy, Docker and a Node.js server.
  • Cheapest ECS Fargate Service with HTTPS
    2 projects | dev.to | 26 Feb 2024
    Let's use Caddy which can act as reverse-proxy with automatic HTTPS coverage.
  • Bluesky announces data federation for self hosters
    7 projects | news.ycombinator.com | 22 Feb 2024
    Even if it may be simple, it doesn't handle edge cases such as https://github.com/caddyserver/caddy/issues/1632

    I personally would make the trade off of taking on more complexity so that I can have extra compatibility.

  • Freenginx.org
    11 projects | news.ycombinator.com | 14 Feb 2024
    One of the most heavily used Russian software projects on the internet https://www.nginx.com/blog/do-svidaniya-igor-thank-you-for-n... but it's only marginally more modern than Apache httpd.

    In light of recently announced nginx memory-safety vulnerabilities I'd suggest migrating to Caddy https://caddyserver.com/

  • Asciinema 3.0 will be rewritten in Rust
    10 projects | news.ycombinator.com | 7 Feb 2024
  • AI for Web Devs: Deploying Your AI App to Production
    6 projects | dev.to | 7 Feb 2024
    My preferred solution is using Caddy. This will resolve the networking issues, work as a great reverse proxy, and takes care of the whole SSL process for us. We can follow the install instructions from their documentation and run these five commands:

What are some alternatives?

When comparing Nginx and Caddy you can also consider the following projects:

envoy - Cloud-native high-performance edge/middle/service proxy

traefik - The Cloud Native Application Proxy

Squid - Squid Web Proxy Cache

HAProxy - HAProxy documentation

nestjs-monorepo-microservices-proxy - Example of how to implement a Nestjs monorepo with no shared folder

Hiawatha - Hiawatha is an open source webserver with security, easy to use and lightweight as the three key features. Hiawatha supports among others (Fast)CGI, IPv6, URL rewriting and reverse proxy. It has security features no other webserver has, like blocking SQL injections, XSS and CSRF attacks and exploit attempts. The built-in monitoring tool makes it perfect for large scale deployments.

RoadRunner - 🤯 High-performance PHP application server, process manager written in Go and powered with plugins

YARP - A toolkit for developing high-performance HTTP reverse proxy applications.

darkhttpd - When you need a web server in a hurry.

docker-swag - Nginx webserver and reverse proxy with php support and a built-in Certbot (Let's Encrypt) client. It also contains fail2ban for intrusion prevention.