varnish cache

How to Install and Configure Varnish with Apache on Ubuntu 24.04

Welcome to the Greenhost.Cloud blog! Today, we’re diving into the world of optimizing web performance by leveraging Varnish Cache with an Apache web server. This guide will walk you through the installation and configuration process on Ubuntu 24.04. Varnish is a powerful HTTP accelerator that can dramatically improve your website’s response time and scalability. Let’s get started!

What is Varnish Cache?

Varnish Cache is a web application accelerator, often referred to as an HTTP reverse proxy. It caches the web pages your users request, significantly reducing the load on your backend server (in this case, Apache) and speeding up content delivery. The result? Faster response times for your users, reduced server load, and an overall better user experience.

Prerequisites

Before we begin, ensure that you have the following:

  1. A server running Ubuntu 24.04.
  2. Root or sudo access to the server.
  3. Apache web server installed and running.
  4. Basic knowledge of command-line operations.

Step 1: Update Your System

Start by updating your package lists and upgrading your packages. Open your terminal and run:

sudo apt update
sudo apt upgrade

Step 2: Install Varnish

Next, you’ll install Varnish. To do this, run the following command:

sudo apt install varnish

After the installation is complete, you can verify that Varnish is installed by checking its version:

varnishd -V

Step 3: Configure Apache

Before configuring Varnish, we need to tell Apache to listen on a different port, as Varnish will be sitting in front of it. By default, Apache listens on port 80, but we will change it to port 8080.

Edit the Apache configuration file. Depending on your setup, this could be located at /etc/apache2/ports.conf or your site’s configuration file in /etc/apache2/sites-available/.

Open the file with a text editor, such as Nano:

sudo nano /etc/apache2/ports.conf

Locate the line:

Listen 80

Change it to:

Listen 8080

Next, find and update your virtual host configuration (for example, in /etc/apache2/sites-available/000-default.conf) to reflect the new port:

<VirtualHost *:8080>
    ServerName example.com
    DocumentRoot /var/www/html
    # Other directives
</VirtualHost>

Step 4: Configure Varnish

Now, let’s configure Varnish to listen on port 80 and forward requests to Apache on port 8080. To do this, we will modify the Varnish default configuration file.

Open the Varnish service configuration file:

sudo nano /etc/default/varnish

Look for the line starting with DAEMON_OPTS. Change the -a :6081 to -a :80 and -b localhost:8080. Your updated line should look something like this:

DAEMON_OPTS="-a :80 -b localhost:8080 -p feature=+http2"

Step 5: Start and Enable Varnish

Next, start the Varnish service and set it to start at boot:

sudo systemctl start varnish
sudo systemctl enable varnish

Step 6: Configure Firewall (if applicable)

If you are using UFW (Uncomplicated Firewall), you need to allow traffic on port 80 for Varnish. Run:

sudo ufw allow 80/tcp
sudo ufw reload

Step 7: Testing Your Setup

Your Varnish and Apache setup is now configured. To verify that everything is working as expected, you can use the following command to check if Varnish is running:

curl -I http://localhost

You should see an HTTP response with headers indicating a Varnish server.

Step 8: Monitor Varnish

Varnish has a built-in tool you can use to monitor its performance and activity. To use it, run:

varnishstat

You can also check the Varnish logs using:

varnishlog

Conclusion

Congratulations! You have successfully installed and configured Varnish Cache with Apache on your Ubuntu 24.04 server. By caching your content, you’ve now significantly enhanced your web server’s performance and scalability.

Remember to monitor your cache hit ratios and adjust your Varnish settings as necessary. With Varnish, your applications can handle more traffic and deliver web pages faster, establishing a better experience for your users.

If you have any questions or run into issues while following this guide, feel free to reach out in the comments below. Happy caching!


Stay Connected

For more tutorials and updates on cloud hosting and optimization techniques, don’t forget to subscribe to our blog or follow us on social media!