We currently run a SaaS application on apache which server ecommerce websites (its a store builder). We currently host over 1000 clients on that application and are now running into scalability issues (CPU going over 90% even on a fairly large 20 core 80GB ram + all SSD disk server).
We're looking for help from an nginx expert who can: 1. Explain the difference between running nginx as a web server vs. using it like a reverse proxy. What are the benefits? 2. We also want to use nginx as a load balancer (and have that already setup in testing), but we haven't enabled cacheing on the load balancer. So while its helping redirect requests, its not really serving any traffic directly and it simply passes through everything to one of the two apache servers.
The question is that we have a lot of user-generated content coming from the apache servers, how do we invalidate the cache for only certain pages that are being cached by nginx? If we setup a cron to clear this cache every 1 minute or so, it wouldn't be that useful... as cache would then be virtually non existent.
--
Also need an overall word on what is the best architecture to build for given the above scenarios.
Is it
- NGINX Load Balancer + Cacheing ==> Nginx Web Server
- NGINX Load Balancer ==> Nginx Web Server + Cacheing ?
- NGINX Load Balancer + Cacheing ==> Apache Web Server
- NGINX Load Balancer == > Apache Web Server (unlikely)
Please help!