Varnish Cache, also referred to as Varnish, is an open source caching HTTP reverse proxy which can help improve a web server’s performance.
In this article we will be covering the process of compiling Varnish Cache 5.0 from its source to use alongside Apache on CentOS 7.
Prerequisites
- A CentOS 7 x64 server instance.
- A sudo user.
Step 1: Update the system
Update the system as follows:
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y && sudo shutdown -r now
Once the server is back online, log back in using the same sudo user.
Step 2: Install Apache
Use YUM to install Apache:
sudo yum install httpd -y
Set Apache as listening on port 8080
:
sudo sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
Start the Apache service:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Step 3: Install Varnish Cache 5.0 from source
Since there is no pre-compiled RPM for Varnish Cache 5.0, we will be compiling it from its source.
Before compiling Varnish Cache 5.0, we need to install several package on which Varnish Cache relies to function:
sudo yum install autoconf.noarch automake.noarch jemalloc-devel.x86_64 libedit-devel.x86_64 libtool.x86_64 ncurses-devel.x86_64 pcre-devel.x86_64 pkgconfig.x86_64 python-docutils.noarch python-sphinx.noarch graphviz.x86_64 -y
Compile Varnish Cache 5.0 from source:
cd
wget https://repo.varnish-cache.org/source/varnish-5.0.0.tar.gz
tar -zxvf varnish-5.0.0.tar.gz
cd varnish-5.0.0
sh autogen.sh
sh configure
make
sudo make install
sudo ldconfig
After executing the above commands, the Varnish Cache 5.0 main executable will be installed onto your system as /usr/local/sbin/varnishd
. You can confirm that the installation was successful using the below command:
sudo /usr/local/sbin/varnishd -V
Step 4: Test Varnish Cache
Modify firewall rules in order to allow inbound traffic on port 80
:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Create an empty html file /var/www/html/1.html
for test:
sudo touch /var/www/html/1.html
sudo systemctl restart httpd.service
Use the following command to start Varnish Cache, setting it to listen on port 80
and to communicate to Apache which is using localhost’s 8080
port:
sudo /usr/local/sbin/varnishd -a :80 -b localhost:8080
Use the curl
command to connect your server:
curl -I http://203.0.113.1/1.html
The output should resemble:
HTTP/1.1 200 OK
Date: Thu, 26 Jan 2017 15:14:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 26 Jan 2017 15:13:20 GMT
ETag: "0-54700ca2565dc"
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/5.0)
Accept-Ranges: bytes
Connection: keep-alive
The X-Varnish: 2
and Via: 1.1 varnish (Varnish/5.0)
headers will only appear when Varnish Cache is running
This concludes our tutorial. Thanks for reading.
Want to contribute?
You could earn up to $300 by adding new articles
Suggest an update
Request an article