GICT knowledge base
Configure and Install Varnish on CentOS/Ubuntu.
Published
In this tutorial we can check how to Configure and Install Varnish on CentOS/Ubuntu server.
Varnish is the most powerful open source HTTP engine/reverse HTTP proxy that has the capability to increase the site speed, especially when there is high traffic on the site. Varnish Cache visits your page only once for caching the page and all the future request for that page will be served by varnish cache
Install varnish
Before installing varnish, we need to add varnish repositories to the server.
For Ubuntu Users
# curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add –
# apt-get update
# apt-get install varnish
For CentOS Users
# yum install -y epel-release
# yum update
# yum install -y varnish
Configuring Varnish on both Ubuntu and CentOS
After installation, we need to configure varnish to reduce the load on the server.
For Ubuntu Users
Search and uncomment the lines under “DAEMON_OPTS” on the varnish configuration file /etc/default/varnish and edit the lines similar to the following.
# vi /etc/default/varnish
DAEMON_OPTS=”-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m”
After saving this file open varnish default file which tells varnish to look for server content. Edit this file to tell varnish to look for the content on port 8080. The code will be similar to the below example.
# vi /etc/varnish/default.vcl
backend default {
.host = “127.0.0.1”;
.port = “8080”;
}
For CentOS users.
Edit varnish configuration file to change the varnish port.
# vi /etc/varnish/varnish.params
VARNISH_LISTEN_PORT=80
Save the file and open the default file of varnish to look the content on port 8080. The code should be similar to the following example.
# vi /etc/varnish/default.vcl
backend default {
.host = “127.0.0.1”;
.port = “8080”;
}
Configure apache to work with varnish
By default, apache is listening to port 80. We have to change the port for apache to 8080 to run it behind varnish.
For Ubuntu Users.
Edit the port.conf file to change apache port to 8080. The file should be similar to the example below.
# vi /etc/apache2/ports.conf
NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080
Also, edit the apache configuration file to change the port.
# vi /etc/apache2/sites-available/default
<VirtualHost 127.0.0.1:8080>
Save this file and restart both services to enable the changes.
# service apache2 restart
# service varnish restart
For CentOS users
Edit apache configuration file to change the port to 8080.
# vi /etc/httpd/conf/httpd.conf
Listen 8080
Restart both services to reflect the changes.
# systemctl restart varnish
# systemctl restart httpd
After the installation, you can verify whether the vanish is working or not by using the following command.
# curl -I http://localhost
Then the output should be something similar to the following:
HTTP/1.1 200 OK
Date: Wed, 04 Nov 2015 10:21:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Fri, 02 Oct 2015 10:36:53 GMT
ETag: “6c-5211cdbf61c14”
Content-Length: 108
Content-Type: text/html; charset=UTF-8
X-Varnish: 32770
Age: 0
Via: 1.1 varnish-v4
Connection: keep-aliveHTTP/1.1 200 OK
Date: Wed, 04 Nov 2015 10:21:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Fri, 02 Oct 2015 10:36:53 GMT
ETag: “6c-5211cdbf61c14”
Content-Length: 108
Content-Type: text/html; charset=UTF-8
X-Varnish: 32770
Age: 0
Via: 1.1 varnish-v4
Connection: keep-alive
If you need any further assistance please contact our support department.
Related guides
How to Install and Uninstall Imunify360?
In this tutorial, we can check how to install Imunify360. Imunify360 is an automated security solution with multi-layer defense architecture for Linux
CentOSInstall and Configure mod_evasive on CentOS
How to Install and Configure mod_evasive Apache on CentOS? The mod_evasive module for Apache that takes evasive action to protect Apache during the time
CentOSHow to Install Laravel on CentOS 6/7
How to Install Laravel on CentOS 6/7Laravel is a free, open-source MVC PHP web framework intended for the development of full-featured web applications.
CentOSHow to Setup and Install FirewallD on CentOS 7
How to Setup and Install FirewallD on CentOS 7. Many Linux distributions have a firewalld as their firewall management solution, and it acts as a front-end
