Skip to main content

Speed up Apache Website with Varnish HTTP Cache

Introduction.


Varnish is reverse-proxy Accelerator is a web application that is also known as temporary proxy HTTP cache scope and makes the website very fast. Depending on the architecture used, it can make site 4-8 times faster.

Before Installation Requirements.

- Apache web-server installed.
- Need EPEL repositories installed for Cantos/RHEL. No need for Ubuntu.

Centos/RHEL 
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm 

Install varnish.

Centos/RHEL 

sudo yum install varnish                                             

Ubuntu

sudo apt-get install varnish                                          

After installing Varnish, stop, start and enable varnish service

sudo systemctl stop varnish                                         
sudo systemctl start varnish                                         
sudo systemctl enable varnish                                       

  

Configuration

To work together, we must regulate both varnish and Apache.


Configure varnish to use port 80

Open varnish configuration file for change pot,

sudo nano /etc/varnish/varnish.params                                  For CentOS/RHEL
sudo nano /etc/default/varnish                                                      For Ubuntu

change the port from 6081 to 80,

Save the file when you’re done.
Next, open the default.vcl file

sudo nano /etc/varnish/default.vcl      

And make following changes,

#Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}

Save and close file

Then, Restart both Varnish

sudo systemctl restart varnish                                       


Switch apache2 default port to 8080 

Open ‘httpd.conf’

sudo vim /etc/httpd/httpd.conf                                      

change the port 80 to 8080

Listen 8080

Restart the Apache service to apply the changes.

sudo systemctl restart httpd For                                           For CentOS/RHEL
sudo systemctl restart apache2                                                     For Ubuntu

Now everything is setup perfectly.
Varnish should be the listen of port 80.
Execute the this command for test configuration.

curl -I http://localhost


Output is something like this,


HTTP/1.1 200 OK
Date: Sun, 10 Oct 2018 18:50:37 GMT
Server: Apache/2.4.25 (Ubuntu)
Last-Modified: Sun, 10 Oct 2018 18:30:12 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 10 3
Age: 9
Via: 1.1 varnish (Varnish/5.0)
ETag: W/"2aa6-554ff0b3c88c9-gzip"
Accept-Ranges: bytes
Connection: keep-alive

Finally, You successfully installed varnish for speedup Apache web server.

Thanks for being here.

Comments

Popular posts from this blog

How to Speedup your WordPress site with Amazon CloudFront.

Introduction A WordPress performance is quite excellent . The number of WordPress plugins to handle performance is such evidence. But the easiest way to improve your user experience is to accelerate the entire WordPress website using CloudFront. This will help you not only improve site response time reduces the necessary infrastructure, reducing the load on the Web server, so you can reduce the total cost of the infrastructure works WordPress. CloudFront is actually a site can greatly help your site to respond to unexpected load when gained popularity. Today this post is to clarify the method of providing a reasonable standard configuration on the WordPress website or blog. How does CloudFront help? Amazon CloudFront is to improve the user's experience accessing the Web site in several ways: 1.  Anycast DNS is to ensure that customers are routed to the nearest edge location. 2.  The cached content is available to users at the edge position (i

Linux System : Free Employee Monitoring with Automatic Screenshots

Introduction :   A utomatic screen-shots  of Linux system directly import  on your web server with Linux samba server service and scrot command. 1)  Setup web panel UI on your web server :   Get web panel PHP/HTML code from Github URL: https://github.com/raj412/Employee-Monitoring-for-Linux-System It’s work in Linux server LAMP environment(no need database for this configuration ) Defult login username password is admin/1234. You can change username/passwrod from login.php file in line number #6 Login Page : Dashboard : Screenshot Page : 2)  Samba server configuration on web server : I.  Install Samba on your server where you setup Linux screenshot log system web panel. sudo apt-get update sudo apt-get install samba II.  Set a password for your user in Samba sudo smbpasswd -a <user_name> III.  Share gallery-images folder from you web panel. This is my web panel gallery-images p

How to control high traffic load on Apache servers : optimization performance of APACHE2 & PHP-FPM

Everyone handle high traffic loads  on Apache server. During down-time they forget to check server memory . Apache not used lot of memory  still server not responding. All time we restart Apache service and all things will start working good. I also faced same issue numerous time and all-time  used same solution : Restart Apache. After lots of research and reading found one solution. In this blog you see step-by-step guide to apache2 performance settings. System environment: Intel(R) Xeon(R) CPU 3.10GHz, 4 cores | 8GB RAM Ubuntu 16.04 Apache2 version using mpm_event PHP FPM (5.6,7.1) First,  Calculate process size : Download : python script file “ps_mem.py” from Github Open this and ps_mem.py file upload on you server :  https://github.com/raj412/ps_mem chmod a+x ps_mem.py sudo python ps_mem.py Output like this:  See here : 12 Apache processes, consuming a total of  35.7MiB, so each Apache process is using roughly 3MiB of RAM. The 42 php-fpm process u