HAProxy can as well (as well as listen on unix sockets)
HN user
rogerdonut
HAProxy Technologies | Pre-Sales, Software, & Systems Engineers, Technical Marketing Engineer | Waltham, MA | Paris, France | REMOTE
HAProxy Technologies is the company behind the world's fastest and most widely used open-source software load balancer.
- Technical Marketing Engineer: We are looking for a Technical Marketing Engineer that can aid in creating and promoting technical content. This position requires a unique combination of technical understanding, a high level of creativity, attention to detail and eagerness to learn, as well as the goal to teach others. Basic Linux experience is a must. An ideal candidate has real world experience in a DevOps or SysAdmin environment (bonus if you have programming exp.)
- Pre-Sales Engineer We are looking for a skilled Pre-Sales Engineer with in-depth knowledge in Linux who will help to expand our client base. Experience with load balancing and networking is a requirement.
- C: We are looking to reinforce the development team of HAProxy and are looking for developers who have solid skills in Shell, C, HTTP, TCP/IP and Git. Knowledge of cloud environments is a plus. We are looking for people who are not afraid of patching the Linux Kernel and who can quickly become autonomous.
- Golang: We are looking for Go developers with 2+ years of experience in Kubernetes and Cloud environments, as well as load balancing. A Bachelors or higher degree in IT is desirable. If you want to contribute to the software enabling performance and reliability of some of the largest websites on the internet.
- Senior Systems Engineer: We are seeking Senior Systems Engineers (Linux) to work out of our Waltham, MA office or remotely in the EST/CST/MST/PST time zones. Knowledge of HAProxy is a plus.
Please send cover letter and resume to careers@haproxy.com
While I have not tested this specific use case, I would start by exploring map files [1] and/or stick tables [2]. Map files can be updated on-the-fly through the HAProxy Runtime API. With stick tables you can persist a session/client based on anything found within the request headers, which would include a users session id.
[1] https://www.haproxy.com/blog/introduction-to-haproxy-maps/
[2] https://www.haproxy.com/blog/introduction-to-haproxy-stick-t...
IMO you would use OpenResty as a web server and HAProxy as a load balancer in front of it. HAProxy focuses on being a high-performance load balancer. OpenResty is built ontop of NGINX and many of the load balancing features in NGINX are locked behind their "Plus" product, all of which are provided by default within HAProxy. In order to take advantage of these features in OpenResty (such as active health checking and DNS service discovery) you would need to use Lua scripts where in HAProxy they are implemented in the core.
Thanks for the feedback. I've provided a few replies below but I think you have made some great points and I will share them internally.
- the site does not do a good job of describing the products and what they do.
The page does lead off by telling you it is a software load balancer, but I agree, we can do a better job of giving more information on the product itself. Most people who pursue HAProxy Enterprise are already familiar with HAProxy. With that said, we're actually working on a complete overhaul to this page and I believe the new version will address this.
- it is hard to find requirements from the first page.
This is just a reference point and typically organizations are working closely with a sales engineer.
- is there a simpler HA setup than the 3 layer one here:
A simpler version is found under active/standby here [1]
[1] https://www.haproxy.com/documentation/hapee/2-2r1/high-avail...
I have not tested that use case but I do not think so. It has the ability to parse FIX tag values and make routing decisions from the initial Logon message.
It has the ability to route by FIX tags. You can find an example here [1]
[1] https://www.haproxy.com/blog/haproxy-enterprise-2-3-and-hapr...
You can pass along timing data from every aspect of the request [1] currently there are approximately 20 events supported. You can also send over just about anything that can be stored within an HAProxy variable / header through a tag. Here's an example configuration for HAProxy (simple) [2] (advanced) [3] and the OpenTracing specific configuration (simple) [4] (advanced) [5]. I've included both simple and advanced configurations.
[1] https://github.com/haproxy/haproxy/blob/master/addons/ot/REA...
[2] https://github.com/haproxy/haproxy/blob/master/addons/ot/tes...
[3] https://github.com/haproxy/haproxy/blob/master/addons/ot/tes...
[4] https://github.com/haproxy/haproxy/blob/master/addons/ot/tes...
[5] https://github.com/haproxy/haproxy/blob/master/addons/ot/tes...
Well said, to add to this, HAProxy is also closing the gap on convenience with its recent addition of AWS EC2 service discovery [1] and Consul service discovery integrations [2].
[1] https://www.haproxy.com/blog/announcing-haproxy-data-plane-a...
[2] https://www.haproxy.com/blog/announcing-haproxy-data-plane-a...
Author of the blog post here, happy to answer any questions about this release.
disclaimer: I work at HAProxy Technologies
More control/flexibility (i.e. cloud provider usually gives you a limited number of "checkboxes" that they want you to be able to modify), generally better observability (HAProxy timing metrics [1] and session state at disconnection codes [2] are very helpful for debugging), and granular control over timeouts [3]. You also get builtin rate limiting [4], which from what I have seen with most cloud load balancers usually requires an up-charge through their "WAF" product.
Better health checking, circuit breaking, and layer4/layer7 retries [5].
Another consideration is whether you have spiky traffic patterns. For AWS load balancers at least, they need time to "warm up" to larger traffic levels. If you manage your own load balancing tier you can scale on demand.
[1] https://www.haproxy.com/documentation/hapee/latest/onepage/#...
[2] https://www.haproxy.com/documentation/hapee/latest/onepage/#...
[3] https://www.haproxy.com/documentation/hapee/latest/onepage/#...
[4] https://www.haproxy.com/blog/four-examples-of-haproxy-rate-l...
[5] https://www.haproxy.com/blog/haproxy-layer-7-retries-and-cha...
Hello, author of release post here. If you have any questions I'd be happy to answer.
HAProxy Technologies | Pre-Sales, Software, & Systems Engineers, Technical Marketing Engineer | Waltham, MA | Paris, France | REMOTE
HAProxy Technologies is the company behind the world's fastest and most widely used open-source software load balancer.
- Technical Marketing Engineer: We are looking for a Technical Marketing Engineer that can aid in creating and promoting technical content. This position requires a unique combination of technical understanding, a high level of creativity, attention to detail and eagerness to learn, as well as the goal to teach others. Basic Linux experience is a must. An ideal candidate has real world experience in a DevOps or SysAdmin environment (bonus if you have programming exp.)
- Pre-Sales Engineer We are looking for a skilled Pre-Sales Engineer with in-depth knowledge in Linux who will help to expand our client base. Experience with load balancing and networking is a requirement.
- C: We are looking to reinforce the development team of HAProxy and are looking for developers who have solid skills in Shell, C, HTTP, TCP/IP and Git. Knowledge of cloud environments is a plus. We are looking for people who are not afraid of patching the Linux Kernel and who can quickly become autonomous.
- Golang: We are looking for Go developers with 2+ years of experience in Kubernetes and Cloud environments, as well as load balancing. A Bachelors or higher degree in IT is desirable. If you want to contribute to the software enabling performance and reliability of some of the largest websites on the internet.
- Senior Systems Engineer: We are seeking Senior Systems Engineers (Linux) to work out of our Waltham, MA office or remotely in the EST/CST/MST/PST time zones. Knowledge of HAProxy is a plus.
Please send cover letter and resume to careers@haproxy.com
HAProxy Technologies | Pre-Sales, Software, & Systems Engineers, Technical Marketing Engineer | Waltham, MA | Paris, France | REMOTE
HAProxy Technologies is the company behind the world's fastest and most widely used open-source software load balancer.
- Technical Marketing Engineer: We are looking for a Technical Marketing Engineer that can aid in creating and promoting technical content. This position requires a unique combination of technical understanding, a high level of creativity, attention to detail and eagerness to learn, as well as the goal to teach others. Basic Linux experience is a must. An ideal candidate has real world experience in a DevOps or SysAdmin environment (bonus if you have programming exp.)
- Pre-Sales Engineer We are looking for a skilled Pre-Sales Engineer with in-depth knowledge in Linux who will help to expand our client base. Experience with load balancing and networking is a requirement.
- C: We are looking to reinforce the development team of HAProxy and are looking for developers who have solid skills in Shell, C, HTTP, TCP/IP and Git. Knowledge of cloud environments is a plus. We are looking for people who are not afraid of patching the Linux Kernel and who can quickly become autonomous.
- Golang: We are looking for Go developers with 2+ years of experience in Kubernetes and Cloud environments, as well as load balancing. A Bachelors or higher degree in IT is desirable. If you want to contribute to the software enabling performance and reliability of some of the largest websites on the internet.
- Senior Systems Engineer: We are seeking Senior Systems Engineers (Linux) to work out of our Waltham, MA office or remotely in the EST/CST/MST/PST time zones. Knowledge of HAProxy is a plus.
Please send cover letter and resume to careers@haproxy.com
This can also be done with HAProxy
listen whatismyip
bind :::80 # listen on ipv4/ipv6
bind :::443 ssl crt /etc/haproxy/ssl/fullchain.pem
mode http
http-request return status 200 content-type "text/plain" lf-string "%[src]" if { path /ip }
http-request return status 200 content-type "application/json" lf-string "{\"ip\":\"%[src]\"}" if { path /json_ip }
http-request denyAuthor of blog post here, I'll be happy to answer any questions about this exciting release!
HAProxy Technologies | Pre-Sales, Software, & Systems Engineers, Technical Marketing Engineer | Waltham, MA | Paris, France | REMOTE
HAProxy Technologies is the company behind the world's fastest and most widely used open-source software load balancer.
Technical Marketing Engineer: We are looking for a Technical Marketing Engineer that can aid in creating and promoting technical content. This position requires a unique combination of technical understanding, a high level of creativity, attention to detail and eagerness to learn, as well as the goal to teach others. Basic Linux experience is a must.
Pre-Sales Engineer We are looking for a skilled Pre-Sales Engineer with in-depth knowledge in Linux who will help to expand our client base. Experience with load balancing and networking is a requirement.
C: We are looking to reinforce the development team of HAProxy and are looking for developers who have solid skills in Shell, C, HTTP, TCP/IP and Git. Knowledge of cloud environments is a plus. We are looking for people who are not afraid of patching the Linux Kernel and who can quickly become autonomous.
Golang: We are looking for Go developers with 2+ years of experience in Kubernetes and Cloud environments, as well as load balancing. A Bachelors or higher degree in IT is desirable. If you want to contribute to the software enabling performance and reliability of some of the largest websites on the internet.
Senior Systems Engineer: We are seeking Senior Systems Engineers (Linux) to work out of our Waltham, MA office or remotely in the EST/CST/MST/PST time zones. Knowledge of HAProxy is a plus.
Please send cover letter and resume to careers@haproxy.com
I'm curious to know what you mean by this? It's not like it can't handle more that is just what their peak workload was. With only 18% CPU usage at peak it's clear that it could handle much more.
when they want to have full control on what is going on, understand what the code is doing to better optimize everything else around it, faster shipping cycles and being able to implement what you want with out waiting for the next shipping cycle with commercial software, community and knowledge base around it etc.
I'm a bit confused by this - I work for HAProxy Technologies and we do have an enterprise product. Many of our customers contribute code directly into the community and we backport those features into the latest enterprise stable version. This means they do not have to wait until the next shipping cycle to take advantage of a new feature. There's also a large community & knowledge base around HAProxy.
Your reasoning may be right when dealing with "closed source enterprise software" but it doesn't line up when we start talking about open source/open core.
There's an opentracing integration coming very soon! We were hoping to have it available with the 2.2 release but there were still a few things to finalize.
Freenode #haproxy
Interesting, that is the first I have heard of a "%" matching problem. You might want to join the community on IRC/Slack and share your config. I'd be more than happy to give you some pointers around upgrading to 2.x.
Very exciting times! Author of blog post here I'd be more than happy to answer any questions about this release.
Good idea. You can also do it based on a sequence of ports accessed as well without headers/values which would allow you to forward directly to a tcp based service. You can track which ports are accessed and verify the sequence using stick-tables.
Here's an example of what that would look like:
https://gist.github.com/dcorbett-haproxy/ec7059cbfccf12c8f41...
Does this allow for sorting channels by last activity? I've always found it odd that there is a "Scientific" / "Priority" based sorting but not by last activity. The current sorting methods become extremely painful as an organization grows and this has been a feature that many in my organization have asked for (and I have submitted feature requests to Slack many times).
If it doesn't, please add the ability to sort channels by last activity!
You can probably tell at a glance that a “Chanel” handbag going for $20 at a flea market is fake
Amazon sells these exact items with Prime as well.
Although Amazon has taken many measures to prevent counterfeits and unsafe products from showing up on its site, plenty of fakes still slip through.
I don't believe this one bit. There are blatant fakes being shipped through Prime. They're not flying under the radar or bait and switching. Go on Amazon and search "Yuangu belt" -- you will quickly find Gucci & Hermes fakes being shipped through Prime. Are you telling me their "counterfeit measures" could not detect this before allowing it to be sold with Prime?
The official HAProxy Ingress Controller uses the Runtime API [1] to avoid restarts/reloads and also has hitless reloads configured by default. HAProxy Technologies also contributed the capability to use the Runtime API within the jcmorais-haproxy ingress controller as well but it requires you to activate using the dynamic-scaling option [3]
One thing I wanted to point out is that the HAProxy Ingress Controller actually has over 25 [2] configuration options at the time of publishing, not 8 as mentioned.
While we have identified a few on our own we'd love to work with you further to identify any missing configuration directives that can help perform some more accurate benchmarks using the official HAProxy Ingress Controller.
disclosure: I work at HAProxy Technologies
[1] https://www.haproxy.com/blog/dynamic-configuration-haproxy-r...
[2] https://github.com/haproxytech/kubernetes-ingress/tree/maste...
[3] https://github.com/jcmoraisjr/haproxy-ingress#dynamic-scalin...
I like shared channels quite a bit and have been using them for several months. Unfortunately it seems that "user groups" do not seem to work with them yet. (i.e. add a group to a shared channel and the users are not auto-joined)
HAProxy Technologies | Software & Systems Engineers, Frontend developers | Waltham, MA | Paris, France | REMOTE
HAProxy Technologies is the company behind the world's fastest and most widely used open-source software load balancer.
We're a polyglot company and are looking for software engineers stretching across many spectrums: C, Golang, and JavaScript.
We're also seeking Senior Systems Engineers and Senior Systems Architects.
C:
We are looking to reinforce the development team of HAProxy and are looking for developers who have solid skills in Shell, C, HTTP, TCP/IP and uses Git. Knowledge of cloud environment is a plus. We are looking for people who are not afraid of patching the Linux Kernel and who can quickly become autonomous.
Golang:
We are looking for Go developers with 2+ years of experience in Kubernetes and Cloud environments, as well as load balancing. A Bachelors or higher degree in IT is desirable. If you want to contribute to the software enabling performance and reliability of some of the largest websites on the internet.
Frontend:
We are looking for an agile and responsible person to join our team as Frontend (JavaScript) Developer. Our department’s mission is developing high-performance, high-quality intuitive user interfaces to meet and exceed our customers expectations.
Senior Senior Systems Engineer & Senior Systems Architect:
We are seeking Senior Systems Architects & Senior Systems Engineers to work out of our Waltham, MA office or remotely in the EST/CST/MST/PST timezones. Knowledge of HAProxy or Kubernetes is a plus.
Please send cover letter and resume to careers@haproxy.com
Why not both? The HAProxy Data Plane API does use hitless reloads -- however, it simplifies the management of the configuration through a modern REST API.