HAProxy with HTTPD or Nginx as Revers Proxy

June 19, 2018 1.6k views
CentOS Apache

I want to boost up my website so i do a bit research on this. I’ve found many options such as :

  • Setup Nginx as reverse proxy by forward dynamic requests to HTTPD or php-fpm : For this which one is best option ? Can i setup php-fpm on few droplets as processing power and Nginx forward dynamic request to these php-fpm pool. I’ve searched on google about this but mostly only different pool on same machine not separate machine.

  • if I setup HAProxy as load balancer to apache ? Does it better than first option ? For example : I have 1 droplet setup HAProxy and other 2 droplet setup HTTP. I’m concerned about source code of the projects. Do I need copy each source code to each droplet and keep each one up to date ?

  • If you have better web server architecture plz recommend .

2 comments
  • Both options have their respective pros and cons. I personally use NGINX as my entry point for websites/applications as a reverse proxy and/or load balancer. My choice for this is I am familiar with NGINX as well as NGINX’s caching abilities.

    Currently I am starting to toy with NGINX as the frontend and using NGINX Unit as the backend application server.

  • “I’m concerned about source code of the projects. Do I need copy each source code to each droplet and keep each one up to date ? ”. Can you help clarify on this part ?

1 Answer

Hello,

What you could do is setup Nginx as a reverse proxy for Apache and serve only the static files via Nginx.

You can follow the steps on how to do that here:

https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache

Or what you could try is using Nginx and PHP-FPM rather than adding an extra web service like Apache. You could follow the steps here:

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04

I think the best way to test which one works better for your application is by doing some stress testing with both setups, here are a few great tools that you could use to do that:

https://www.digitalocean.com/community/tutorials/an-introduction-to-load-testing

Hope that this helps!
Regards,
Bobby

by Etel Sverdlov
This tutorial covers combining apache and nginx to serve sites with more speed. This article takes you from a fresh DigitalOcean droplet to one where apache and nginx are configured to work together.
Have another answer? Share your knowledge.