Nginx
YARP
Our great sponsors
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
-
Nginx 1.26.0 Stable Released
Yeah, unless I'm looking at it wrong, there doesn't seem to be any meaningful difference between 1.25.5 and 1.26.0:
https://github.com/nginx/nginx/compare/release-1.25.5...rele...
-
How to securely reverse-proxy ASP.NET Core web apps
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?
-
Freenginx: Core Nginx Developer Announces Fork of Popular Web Server
> 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
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
- Freenginx.org
-
Performance benchmark of PHP runtimes
Nginx + Roadrunner (fcgi mode)
-
Web CGI programs aren't particularly slow these days
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
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.
YARP
-
Is Internet facing Kestrel in dotnet 7.0+ safe?
Adding to the other answers here, you might find some useful functionality in YARP if you want a pure .NET reverse proxy. Like Kestrel, Microsoft dogfoods YARP in Azure.
- Self hosting a proxy server, for use with HttpClient.
-
.NET Monthly Roundup - January 2023
➡️ Release 2.0.0-RC.1 · microsoft/reverse-proxy · GitHub ➡️ Visual Studio 2022 17.5 Preview 3 is here!
- converting framework4.8 webapps to NetCore (Net5,6,7). any apps available to help?
- Issue: ERR_SSL_PROTOCOL_ERROR for DigitalOcean Droplet
- Injecting a unique ID between two TCP streams
-
ASP.NET Core rate limiting middleware in .NET 7
In your application, you may be using YARP, to build a reverse proxy gateway sitting in front of various backend applications. For example, you may run YARP to listen on example.org, and have it proxy all requests going to this domain while mapping /api and /docs to different web apps running on diffreent servers.
-
Cloudflare Ditches Nginx For In-House, Rust-Written Pingora
Microsoft already made YARP for their Azure infrastructure, it's a "build your own reverse proxy" kit.
-
Running multiple processes on the same port in .NET Core 3.1
If I was to need one I would probably reach for YARP (Yet Another Reverse Proxy) from MS. https://microsoft.github.io/reverse-proxy/
-
Kestrel as a reverse proxy?
Microsoft's YARP is exactly this.
What are some alternatives?
Caddy - Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
envoy - Cloud-native high-performance edge/middle/service proxy
IdentityServer - The most flexible and standards-compliant OpenID Connect and OAuth 2.x framework for ASP.NET Core
Squid - Squid Web Proxy Cache
Keycloak - Open Source Identity and Access Management For Modern Applications and Services
nestjs-monorepo-microservices-proxy - Example of how to implement a Nestjs monorepo with no shared folder
Serilog - Simple .NET logging with fully-structured events
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.
Fake JSON Server - Fake JSON Server is a Fake REST API that can be used as a Back End for prototyping or as a template for a CRUD Back End.
darkhttpd - When you need a web server in a hurry.
Mockaco - 🐵 HTTP mock server, useful to stub services and simulate dynamic API responses, leveraging ASP.NET Core features, built-in fake data generation and pure C# scripting