Achieving the best Magento 2 server setup is a great one in these recent developing times. We will not be able to accomplish these figures without the help of either Varnish or FPC(or both). It is not impossible without the help of certainly the most relevant tools.
Which is the Best Magento 2 server setup?
When you Wrongly configure Varnish.
A correct configured Installation of Varnish will deliver < 100ms page load times(it is closer to <10ms). You Must Expect the same for Magento
When a customer is not logged in
When a customer is not logged in when he has not created a unique session (add-to-cart / wishlist, logging in, etc)
Uncashed Mage default cache partial FPC cache Total FPC cache Varnish
When a Customer is logged in
When a customer is logged in when he created a unique session (logged in, items in a cart, etc.). In this situation, the varnish will likely be off. If you plan for an alternative like ESI’s – depending on the reverse calls. It will also use up the same time for page loading as the FPC cache (due to bootstrap overheads) – or it may really increase page load times beyond just being Uncached.
Uncached Mage default cache Total FPC cache
This is not a case of turning Varnish – “It’s a case you are not actually caching anything at all”
The Ideal server setup for Magento 2 configuration files
When we operate multiple servers, like when we operate more than 400 servers and all servers are purely Magento stores – of different sizes and different capacity. It is the rate that the configuration files we have on one will match that of another. This is because not all business is operating likewise.
Some hindrances are as follows
- Number of visitors, continuously and concurrently, with active sessions
- Victims of bad crawl bots, generating crucial irrelevant and invaluable load
- A High proportion of layered navigation hits
- The High number of search queries
- High Volume of transactions/ hour
- Poorly built template
- Too many / slow/ heavy / Bulky 3rd party extensions
- Outdated inbound links are one of the major reason for the high proportion of 404 hits
- Network interface capacity is at the limit.
- Large and complex catalog(lots of products/ categories/attributes)
So to solve all these queries that are mentioned above, all across this spectrum each has different approaches to more optimal performance.
To solve the issues highlighted above:
We will easily overcome these above-stated queries not only with better hardware usage as follows:
- Use an FPC beyond that of Varnish
- Filter out/ Block bad bots at the network edge – or you can also redirect all requests to Varnish regardless of cookie state
- Change stock layered navigation to SQL, make layered navigation filters dependent
- Change Stock search to SQL
- Distribute MySQL load access across the master/slave configuration
- Re-build the template
- Strip them out
- Monitor access logs continuously and rewrites URLs effectively
- Split off static content to a CDN, or improve connectivity.
- Add more hardware (well, we had to say it at some point for effective management)
The ideal Magento 2 server stack
The ideal Magento server stack gets you closer to reality. Magento server is the best example to demonstrate dedication to Magento OS and its configuration.
Firewall, DOS filter, Load Balancer, Varnish, Nginx, PHP, Redis, Memcached, MySQL
So when you ask: Which is the best Magento Server setup?
It must have these following capacities
- High Availability
- Simplicity of administration
- High Performance
How do we achieve this?
We can achieve this by configuring Multi servers
Some Sub-components required for a multi-server configuration are
- Load server
- MySQL server
- Common Storage
So when we multipurpose some systems. PCI-DSS compliance dictates a role, for each various servers as follows
Server 1: Load Balancer + Webserver
Server 2: Webserver
Server 3: Database Server
So What Hardware Should be used for What?
Web servers: Fastest CPU, CPU cores, Ratio of 2 GB RAM/core
DB Server: Fast CPU, fastest disk I/O, most RAM
Best layout for multipurpose with 3 different machines
Server 1: SSL Terminator -> Varnish->Nginx/Apache->PHP
Server 2: Nginx/Apache->PHP,Redis,(MYSQL Slave)
Server 3: MySQL
These particular types of usage are dependent based on your requirement. As to the specific configuration of each application, it’s mainly dependent on your hardware specifications, your store requirements and complexity usage, your type of visitors, and as well as the volume of visitors.