This article is outdated and may not work correctly for current operating systems or software.
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.
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.
Use YUM to install Apache:
sudo yum install httpd -y
Set Apache as listening on port
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
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
Modify firewall rules in order to allow inbound traffic on port
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
sudo /usr/local/sbin/varnishd -a :80 -b localhost:8080
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
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.