Processes versus events
One process per connection uses memory even while the connection is just waiting. nginx handles thousands of open connections with few processes, leaving memory free for your app and database.
Performance
When a shop or an API gets many visits at once, the server is not always short on power: often it falls short because of how it handles each connection.
Swipe the diagram to see all of it
On the left, Apache’s classic setup: each connection takes a whole process with PHP inside. When processes run out, other requests wait in a queue. On the right, nginx handles thousands of connections with very little memory and passes them to Node.js, which works with events without blocking.
One process per connection uses memory even while the connection is just waiting. nginx handles thousands of open connections with few processes, leaving memory free for your app and database.
nginx serves images, styles and static files directly, handles HTTPS and passes the rest to your apps (Node.js, AdonisJS) or to PHP-FPM. Each part does what it does best.
SERVILINUX analyzes your Apache sites, moves them to nginx, checks that every domain responds as before and, if something does not match, goes back to Apache on its own.
With Sentinel you see memory and load before and after the change, and decide with data whether you need a bigger server or just a better setup.
The diagram compares Apache’s classic setup (prefork with mod_php), still very common. Apache with the event MPM and PHP-FPM performs much better; even so, nginx as a reverse proxy usually uses less memory with many open connections.
In SERVILINUX
SERVILINUX reviews the Apache sites and what each domain returned.
With one click from the server page; your certificates are kept.
Each domain is compared with before; if it fails, it goes back to Apache on its own.
Migrated sites are managed as projects, with HTTPS and logs.
Connect your first server in minutes. The rest, from any cloud you prefer, join the same panel.