sumarsono.com
Take it with a grain of salt


HAproxy Dynamic Responses

Posted on

Return custom response terhadap request tertentu, ketika pakai Nginx aku sering banget pakai ini. Seringnya aku pakai untuk cek "detak jantung" si nginx, dan stateless acme challenges. Contoh config-nya seperti ini

http {
...
  server {
  ...
    location ~ ^/\.ping$ {
      default_type text/plain;
      return 200 "Pong!!!;
    }
  ...
  }
}

Nah, di HAproxy juga ada fitur serupa, sayangnya baru ada sejak haproxy v2.2. Di Haproxy kita bisa pakai direktif http-request return . Dengan fitur itu maka aku bisa return response tanpa harus menyentuh backend, cukup di frontend aja, Contohnya begini:

...
frontend web
        bind :80
        bind :443 ssl crt /etc/haproxy/ssl/
        ...
        http-request return status 200 content-type "text/plain" string "Pong!!!" if { path_beg /ping }
        ...
        default_backend backend-web

Ketika di cUrl

[sumar@tingpret ~]$ curl -iL domainku.tld/ping
HTTP/1.1 200 OK
content-length: 7
content-type: text/plain

pong!!!
[sumar@tingpret ~]$