4.1. Apache HTTP server

  1. Apache is the de-facto standard HTTP server. It's a very complete and modular
  2. project supporting both file serving and dynamic contents. It can serve as a
  3. frontend for some application servers. It can even proxy requests and cache
  4. responses. In all of these use cases, a front load balancer is commonly needed.
  5. Apache can work in various modes, some being heavier than others. Certain
  6. modules still require the heavier pre-forked model and will prevent Apache from
  7. scaling well with a high number of connections. In this case HAProxy can provide
  8. a tremendous help by enforcing the per-server connection limits to a safe value
  9. and will significantly speed up the server and preserve its resources that will
  10. be better used by the application.
  11.  
  12. Apache can extract the client's address from the X-Forwarded-For header by using
  13. the "mod_rpaf" extension. HAProxy will automatically feed this header when
  14. "option forwardfor" is specified in its configuration. HAProxy may also offer a
  15. nice protection to Apache when exposed to the internet, where it will better
  16. resist a wide number of types of DoS attacks.