HAProxy SNI

HAProxy SNI” is pure gold! If you want to have a load balancer for HTTPS traffic, without managing SSL certificates on the said load balancer, there is a way to do so.

The approach is utilizing the Server Name Indication (SNI) extension to the TLS protocol.  I knew about it and I was already using it on the web server side, but it didn’t occur to me that it’ll be utilized on the load balancer.  Here’s the configuration bit:

frontend https *:443
  description Incoming traffic to port 443
  mode tcp
  tcp-request inspect-delay 5s
  tcp-request content accept if { req_ssl_hello_type 1 }
  use_backend backend-ssl-foobar if { req_ssl_sni -i foobar.com }
  use_backend backend-ssl-example if { req_ssl_sni -i example.com }
  default_backend backend-ssl-default

The above will make HAProxy listen on port 443, and then send all traffic for foobar.com to one backend, all traffic for example.com to another backend, and the rest to the third, default backend.

Why I don’t answer most phone calls

The question of the phone call etiquette has been coming up more and more often recently.  Is it polite to call without a prior message or agreement? What time should one call? What’s the decision point for opting for the phone call versus some other communication channel?  These, and many other questions are popping up frequently.

I came across a nice blog post – “Why I don’t answer most phone calls” – which discusses some of the reasons why this particular person doesn’t answer phone calls.  It’s a good quick read, but here is a summary:

  1. Because I’m busy.
  2. Because my agenda and tasks are also on my phone.
  3. Because a call leaves no trace.
  4. Because your communication is worse.
  5. Because repeating yourself is costly.
  6. Because it’s awkward.
  7. Because my memory sucks.

And I do agree with these points.  Call do interrupt and are rarely timed well.  Most people suck at communications, so calls drag on forever.  Whenever something is discussed or decided, there is no trace of it.  And my memory is horrible.

However, I do still answer phone calls.  But my personal expectation is that a call is:

  • either about something really urgent,
  • or I’ve missed a text/message and left it without response for longer than the caller expected (beer for lunch? and it’s lunch already),
  • or it’s from a good friend or family, who I haven’t heard from in a while.

If it’s none of the above, I tend to get irritated and think much lesser of the world around me in general, and a person calling me in particular. :)