Varnish or Varnish cache is an open source http proxy/accelerator that is put in front of webserver, for the purpose of speeding up the webserver (Apache & nginx both), it's especially meant for webservers that are serving content heavy dynamic websites.
Varnish works by redirecting user requests to static, thus reducing the calls to dynamic pages & thereby reducing load. It visits server once to cache the page & then all the future calls to the page are served by varnish cache.
It makes website really fast. Depending upon the architecture being used, it can make website 3 to 10 times faster. In this tutorial, we are going to discuss how we can install Varnish Cache for Apache Webserver on RHEL/CentOS to speed up your website .
Recommended Read: Install DRUPAL & create your own Website/Blog
Also Read: Create your own Website with Joomla (Install Joomla on Linux)
Pre-requisites
- We need to have an apache webserver installed
To setup an apache webserver, read our article STEP BY STEP APACHE SERVER INSTALLATION.
- We also need to have EPEL repositories installed on our system
To install Varnish package, we need EPEL repository installed on our systems. Install EPEL repositories on the system using the below mentioned command,
RHEL/CentOS 8
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
RHEL/CentOS 7
$ sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
RHEL/CentOS 6 (64 Bit)
$ sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RHEL/CentOS 6 (32 Bit)
$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Installation
We are now ready to install varnish on our machine & with EPEL repositories installed & enabled, it can be done through yum. To install varnish, open your machine terminal & execute the following command,
$ sudo yum install varnish
After installation is complete, we will start the service & enable it at boot,
$ sudo systemctl start varnish
Configuration
We will now configure both Varnish cache & apache server to work with each other. As mentioned above varnish server is placed before apache webserver, so firstly we will configure varnish server to listen to port 80. To do this open the varnish configuration file '/etc/varnish/varnish.params'
$ sudo vim /etc/varnish/varnish.params
& change the port from 6081 to port 80,
VARNISH_LISTEN_PORT=80
After making changes, save file & exit. Next, we will set the IP address & port on which the varnish server will look for the server content, to do this we need to edit '/etc/varnish/default.vc1'
Open 'default.vc1 & make the following entries,
$ sudo vim /etc/varnish/default.vc1
backend default {
.host = "127.0.0.1";
.port = "8080";
}
We can change the IP address to 127.0.0.1 to IP address of the webserver, if varnish cache & webserver are on separate machines. Also we can make change to port, as per our requirement. Next, restart the varnish service to implement the changes made,
$ sudo systemctl restart varnish
Now we will make changes to apache webserver, so that it listens to the port that we have mentioned in on varnish cache in 'default.vc1' file. Open 'httpd.conf'
$ sudo vim /etc/httpd/httpd.conf
& change the port number,
Listen 8080
Save file, exit & restart the apache service to implement the changes.
$ sudo systemctl restart httpd
Our setup is now complete. To test that things are workin as they are supposed to, execute the following command,
$ curl -I http://localhost
It should return with output with varnish version, something like
HTTP/1.1 403 Forbidden
Date: Mon, 18 Sep 2017 01:28:41 GMT
Server: Apache/2.4.27 (CentOS) PHP/5.4.16
Last-Modified: Tue, 14 Mar 2017 11:27:18 GMT
ETag: "1896-6152e1i536981"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 13
Age: 0
Via: 1.1 varnish-v4
Connection: keep-alive
This shows varnish is working as it's supposed to & serving the httpd pages.
This was our tutorial on how to install Varnish for apache on RHEL as well CentOS servers. If you have any queries or questions or just want to provide valuable suggestions, please do so using the comment box below.
I am truly thankful to the owner of this website who has
shared this impressive paragraph at here.
fantástico problemas completamente, você simplesmente
recebido um novo leitor. O que teria você recomendo em relação ao seu post que você fez alguns dias no passado?
Qualquer positivo ?
It is also possible to use Nginx with Varnish. On top of that, you can configure your server to use php processor, like PHP-FPM. For this you will have to configure Nginx and PHP-FPM and Varnish with Nginx. To use both Nginx and varnish, you will have to free a port to use for Varnish.