haproxy
Eureka
Our great sponsors
haproxy | Eureka | |
---|---|---|
16 | 8 | |
4,431 | 12,195 | |
2.4% | 0.4% | |
9.9 | 5.7 | |
5 days ago | 12 days ago | |
C | Java | |
GNU General Public License v3.0 or later | Apache License 2.0 |
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.
haproxy
-
HAProxy is not affected by the HTTP/2 Rapid Reset Attack (CVE-2023-44487)
I wanted to try it out just now but hit a roadblock immediately - it cannot automatically obtain and maintain TLS certificates. You have to use an external client (e.g. acme.sh), set up a cron to check/renew them, and poke HAProxy to reload them if necessary. I'm way past doing this in 2023.
-
minexmr2.com updated to p2pool v3.1, monerod v0.18.2.0, and ready for Mar 18 p2pool (not monero) hardfork
I turn on 1 relatively cheap cloud server to process DNS, https and stratum connections and route them via haproxy to one of N miner servers described above.
- Update to haproxy 2.4.18 breaks WebDAV
-
HAProxy 2.7
With the recent discussions about memory safe languages, HAProxy is still surprisingly written in C [0].
-
35M Hot Dogs: Benchmarking Caddy vs. Nginx
It does not, because HAProxy does not perform any disk access at runtime and thus would be unable to persist the certificates anywhere. Disks accesses can be unpredictably slow and would block the entire thread which is not something you want when handling hundreds of thousands of requests per second.
See this issue and especially the comment from Lukas Tribus: https://github.com/haproxy/haproxy/issues/1864
Disclosure: Community contributor to HAProxy, I help maintain HAProxy's issue tracker.
-
The perils of the “real” client IP
:+1: for the effort to document this, and coordinating the disclosure with the vendors. This mainly talks about rate-limiting bypass/DoS, but if XFF is also used for audit trail logging of IP addresses and/or IP-based access lists, then the security implications can be even more severe, with falsified audit logs and bypassed security controls.
Setting up an application server behind a reverse proxy to use the "real" client IP is unfortunately very typically just a trial-and-error based process, with very little room for this kind of nuanced security-conciousness, because the configuration and exact behavior is all so non-standardized across different implementations of reverse-proxies and application servers... Typically users will just try different configuration settings until they find a combination that seems to work, and you would actually need to dig in with curl and tshark to understand the edge cases, because the documentation of the application-specific implementation is typically just one brief sentence...
Getting XFF working correctly through a complicated HTTP stack with multiple layers of nginx/haproxy/apache proxies (yes, they have different non-overlapping feature sets), custom backends implementing custom XFF handling/forwarding, and jetty/spring backends upgraded across a major version bump that changed the implementation and configuration properties related to XFF handling was insanely difficult. And of course it broke when migrating from a F5 LB to an AWS ALB, because it behaved differently for that one edge-case for an important customer... highly recommended to just override the entire XFF header with a single value at the appropriate point in your stack, if at all possible.
If just the naive leftmost-first vs rightmost-ish-with-configurable-list-of-trusted-upstream-proxies wasn't enough, then yeah, HAProxy does the thing where it adds a new 100% standards-compliant header continuation line [1] that maybe 1% of backend application developers have ever tested with. And trying to configure HAProxy to interpret the incoming XFF headers for logging/access-control ~is~/was even more weird [2].
- Ask HN: What are the best the publicly available FAMANG code repos?
Eureka
- How Netflix Uses Java
-
Why using Eureka?
I was setting up microservices based on Netflix Eureka and experimenting on top of spring-cloud and after weeks of research and development the question rose!
-
[Feedback request] Fuddle service registry
The closest thing I've found is Netflix's Eureka, though its very Java oriented and I found hard to use.
-
Kubernetes Microservices on Azure with Cosmos DB
There's an open issue documenting this problem on Spring Cloud Netflix and Netflix Eureka.
-
Programming Microservices Communication With Istio
Service discovery — Traditionally provided by platforms like Netflix Eureka or Consul.
- Ask HN: What are the best the publicly available FAMANG code repos?
-
What Is a Service Mesh, and Why Is It Essential for Your Kubernetes Deployments?
With multiple services running, it’s hard to discover where they’re located. The dependencies between multiple services are not always easily found, and new services may be deployed with a new dependency on an older service. Those services can be deployed anywhere in the infrastructure, so what you need is a Service Discovery service. There are plenty available, such as Netflix Eureka or HashiCorp Consul.
What are some alternatives?
service-mesh-istio - A microservice project leveraging Service Mesh with advanced features from Istio
zstd - Zstandard - Fast real-time compression algorithm
consul - Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
ClickHouse - ClickHouse® is a free analytics DBMS for big data
Apollo - Java libraries for writing composable microservices
3proxy - 3proxy - tiny free proxy server
consul-api - Java client for Consul HTTP API
Caddy - Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
brotli - Brotli compression format
Jool - SIIT and NAT64 for Linux
SnopEE
restQL-core - Microservice query language