Fix issue Kong active health checks not working properly after update an Upstream

Kong is known as the world’s most popular API gateway. It’s lightweight, fast, and flexible. I have chosen and been using it in production for a long time besides these other ones as Tyk, KrakenD,… because it’s easy to scale, easy to extend and have a nice RESTful Admin API. It seems everything is good but in fact, I met a lot of challenges, it made me spend many time to debug and fix it.
Read more →

dnsdist: implement own rate-limiting function - Part 2

In previous post, I explained how I wrote a rate limiter for dnsdist using fixed window algorithm and redis. In this post, I will show how I write a rate limiter without Redis, this method give me a higher performance.
Read more →

Squid: outgoing with random IP & static IP using request header

Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. I’m using Squid as a forward proxy for my crawler system. On my proxy server, I have a lot of IP addresses and I want all of requests going to outside will choose an IP address randomize, only requests to Facebook will use a static IP.
Read more →

dnsdist: implement own rate-limiting function - Part 1

dnsdist is a highly DNS-, DoS- and abuse-aware loadbalancer. Its goal in life is to route traffic to the best server, delivering top performance to legitimate users while shunting or blocking abusive traffic. dnsdist has supported a basic rate-limiting but it wasn’t fit to my case, and I wrote a custom Lua code to implement own rate-limiting function.
Read more →

Elasticsearch: Migrate indexes from old cluster

You might have switched to new ES cluster for any number of reasons and you’re likely wondering how to get your existing Elasticsearch data into your new infrastructure.
Read more →