Magento is a common eCommerce platform that is well known for suffering performance related issues. section.io delivers huge speed improvements to Magento through caching HTML pages (and static assets) inside Varnish.
Different Approaches for Different Magento Versions
As of Magento 2.0, support for Varnish to cache page content is integrated into Magento. section.io offers “Instant Global Cache”, an extension that will let you get setup with Varnish and distribute it globally on section.io’s CDN directly from the Magento Admin portal.
Magento 1.9 and Earlier
Magento 1.9 and earlier does not support Varnish out of the box. Support is instead provided by the free Turpentine Magento extension.
The Turpentine extension issues commands required for correct operation to a management port intended for Varnish. A special “bridge” program listens on this port, and makes the section.io platform look like a normal Varnish instance (Instead of a globally distributed platform that runs Varnish for you).
Follow the official instructions in order to install Turpentine. Since Varnish itself is already configured inside section.io you’ll only need to complete the ‘Install this plugin’ steps.
- Sign up & create an application at section.io using the final DNS name that your site will be accessed as.
- Download, install & configure the varnish-cli-bridge.
- Follow the standard Magento+Turpentine instructions, with some exceptions (see below).
- Apply the Varnish configuration from within Turpentine Configuration, to update section.io.
- Update your public DNS records to direct traffic to section.io for your site.
Creating an application
section.io provides a customized Varnish image already configured for Magento Turpentine. Create your application using the Stack “Varnish v3 Magento Turpentine”.
Set up the varnish-cli-bridge
This program will listen for Varnish commands and foward them to the section.io hosted Varnish platform.
Download the lastest section.io cli bridge here. You will want the varnish-cli-bridge-vN.N.N-linux-amd64.tar.gz file.
Collect configuration details
There are 3 pieces of information required to run the bridge:
- API endpoint: This URL uniquely identifies your application within section.io. Most often, you’ll need the “Production varnish Proxy API endpoint” from the Configuration > API page in section.io’s management portal.
- API username: This is a username that has permission to perform API actions.
- API password: This is a password for the specified user to perform API actions.
Run as a service
Install Upstart if it is not already installed on your server. Copy the script above with the new name “varnish-cli-bridge.conf” into /etc/init/. Change the endpoint, username & password to match your application.
# Step 1: Install Bridge cd /tmp curl --remote-name --location https://github.com/section-io/varnish-cli-bridge/releases/download/v0.2.4/varnish-cli-bridge-v0.2.4-linux-amd64.tar.gz tar xvzf varnish-cli-bridge-v?.?.?-linux-amd64.tar.gz cp ./varnish-cli-bridge /usr/local/bin/varnish-cli-bridge # Step 2:Setup bridge to run cd /etc/init curl --location https://github.com/section-io/varnish-cli-bridge/raw/master/upstart.conf --output varnishclibridge.conf # Step 3: edit the file "/etc/init/varnishclibridge.conf" with your specific details vi varnishclibridge.conf # Step 4: State the varnish cli bridge as a service start varnishclibridge # Step 5:Check bridge log for success - Should see a line like this -> main.go:159: Listening on '127.0.0.1:6082'. tail /var/log/varnish-cli-bridge.log
Otherwise, use whatever solution is available with your distribution to run the binary as a service.
Configure Turpentine to talk to the bridge
In your Magento admin portal, you will want to navigate to the Turpentine “Varnish Options” section. Here we will be updating the
Server List option with the endpoint for the Varnish CLI Bridge you just installed. Add the entry
127.0.0.1:6082 to the list and hit “Save Config” in the upper right hand corner.
If you get an error (sample error in picture below), you should revisit the bridge installation process and ensure you have done that correctly.
Deviations from official Turpentine instructions
See the turpentine installation guide.
Step 1-3: Skip these steps. There is no need to install or configure a local Varnish server.
See the turpentine configuration guide.
No special configuration is required to use Turpentine with the bridge & section.io.
Upload Turpentine configuration to section.io
The configuration must be applied/uploaded into section.io by manually hitting the Apply Varnish Configuration button on the Cache Management page.
There are 2 recommended tests to validate your implementation:
- Test Pages Are Coming From Cache - Reload your browser 3-5 times on a single page, You should start to see multiple Varnish ID’s in the HTTP response headers (In a browser debugger such as Chromes debugger) and see page response times around ~50-100ms
- Test Bans Are Reaching the section.io Platform - Using a Product page on your site refresh 3-5 times to ensure pages are in cache. Once the page is in cache, Add a product to your shopping cart. This will cause Turpentine to send a Ban statement to section.io to clear out the block on all pages for the user that contains the shopping cart. You should see the shopping cart updated successfully on page refresh.
Magento 2.0 and Later
With the release of Magento 2, Varnish is required for production usage. The means that you have to have a Varnish implementation to run your Magento 2 site. We offer an extension, Instant Global Cache, for you to get setup within the Magento portal. If you are experiencing a low cache hit rate with Magento 2 and Varnish Cache make sure you’ve checked these settings within Magento.
Magento 2 extension
To get started with section.io and Varnish directly from the Magento Admin portal, you first must download the “Instant Global Cache” extension from the Magento Marketplace.
Once the extension is added, go to Reports in the left Nav and then find section.io listed in your Reports.
We will ask you to login with section.io credentials. You can either create them in the Magento portal or use credentials you have created from section.io/sign-up/. When you create your login we will also send you an email to verify your email address. This is required for us to setup your application.
When you are logged in on your Magento Admin Portal with your section.io credentials, we will determine if you already have an application setup with us. If you do, we will show you the accounts you have with us. If you do not, we will create an application for you.
If you do not have Varnish Cache as your chosen Full Page Cache Caching Application, will will show an error message for you to update this. To update this field, go to Stores -> Configuration (under Settings) -> Advanced -> System. Then toggle the Caching Application under Full Page Cache to Varnish Cache.
Now you have a section.io application created with Varnish 4 and Varnish Cache setup as your Full Page Cache solution in Magento.
Next, on the section.io extension, you will see a Management section. The first button says “Update varnish configuration.” Clicking this button will pull in the recommended Magento VCL (Varnish Configuration Language) into your section.io application.
There is also a button to pull in free HTTPS certificate. This will ensure your website has the green padlock next to the url. This is a free certificate included with your section.io application that we will managed on your behalf, to include prourement, installation, and renewal. Please ensure your website has an endpoint exposed to the internet so we can validate the certificate before you go live.
To go live with Varnish and your section.io application, you willl need to change a DNS record to point to section.io. Detailed instructions can be found here. You can also find more information from your hosting provider as to where to go to make this change. Once you have made the change, you can click verify to see if the change was successful and traffic is currently flowing through section.io.
Magento CLI Commands
The section.io extension adds some new Magento CLI commands to allow you to automate the configuration of your site
sectionio:setup <username> <password> <account_id> <application_id>
Setup the section.io extension with your section.io account and application details
<username> <password> are your https://aperture.section.io username & password.
Update Varnish with the Magento VCL. This has the same effect as pressing the “Update varnish configuration” button in the extension UI.