Configure and Install Varnish on CentOS/Ubuntu.

Last modified: July 30, 2020
You are here:
Estimated reading time: 2 min

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.

Was this article helpful?
Dislike 0
Views: 5