simple TCP layer load balancer (in essence similar to HAProxy (haproxy. org).

1 Introduction
In this project, we would implement a simple TCP layer load balancer (in essence similar to HAProxy (haproxy.
org). The main objectives of this assignment can be summarized as follows: (1) hands-on experience with
“UNIX” sockets, (2) deep understanding of HTTP protocols, and (3) an introduction to system design, and
performance monitoring.
2 Multi-threaded Load Balancer
2.1 Specifications
Your balancer server should accept incoming connection requests, and select one of the backend servers (according to a policy) to forward the request to. The response is forwarded back to the client. A log entry would
be added including the following information: (a) client ip, (b) client port (c) Request Type (i.e., GET, Post,
..), (d) the chosen server ip, (e) the size of the request, (f) the size of the response, (g) the status code of the
response, (h) time of the request and the time of the response.
The load balancer should implement two policies. Policy I is a simple round robin , where servers are chosen
in order. Students should propose another policy. You can use the log entries, or propose new metrics to the
log.
The solution should be working and running, you an use any backend http webserver (including Apache
httpd).
3 Bonus
3.1 HTTP 1.1
Using persistent connections to the backend servers, can significantly improve the performance. This can be
done by using HTTP 1.1 and reuse the connections.
3.2 X-Forwarded-For
Add X-Forwarded-For to the request to the back end server. For more information, please check this https:
//developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For.

Posted in Uncategorized

Place this order or similar order and get an amazing discount. USE Discount code “GET20” for 20% discount