Am 18.02.2015 um 16:56 schrieb ragavd [email protected]:
Hi,
We are configuring the NGINX as a reverse proxy. We are expecting some 100
concurrent users or connections/sessions to be active at any given moment of
time. Right now the server is acting as a reverse proxy for only one
application. These concurrent users will connect predominantly between 6:00
AM to 7:00 PM. Based on this what should be the RAM and CPU configuration
for the NGINX server?
What’s your hardware?
It all depends on a couple of configuration-parameters.
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers
If I’m correct, the default would be
8*4k=32k per connection, which would result in a memory usage of 3.2MB
with 100 concurrent connections.
Of course, nginx itself would also need some memory.
But nginx is quite thrifty IME.
Also is there a guideline or a blog entry which we can use to approximate
the system requirements of NGINX servers based on the concurrent user load?
I use the above formula as a guideline.
But I haven’t really had a situation where I was ever coming close to
hitting a limit on the hardware or our (very modest) worker_connections
default.
If we get DDoSed, it’s usually so much crap-traffic that we have to
route the affected network through a mitigation-service.
And also what will be preferred OS for NGINX server?
I think the Tier 1 platforms are:
- FreeBSD 9+10 AMD64
- Cent OS 6+7 AMD64
- Ubuntu 12+14 AMD64
NGINX Plus supports a couple of additional platforms, but I would assume
the majority of the installation-base is on any of these three (and then
some Debian installs).
http://nginx.com/products/technical-specs/
For your use-case, it doesn’t really matter what OS you run, as long as
it’s one of the above (or you know it really well).
I think FreeBSD9+10 have the lowest hardware requirements, even without
special tuning.