A load balancer sits between clients and application instances. It can terminate TLS, perform health checks, and distribute requests using round-robin, least-connections, weighted, or consistent-hash strategies.
A reverse proxy such as Nginx or Envoy can also cache responses, enforce request limits, and hide private service addresses. Health checks are essential because traffic should only reach instances that are ready to serve requests.