Giter VIP home page Giter VIP logo

varnish's Introduction

Varnish Docker Repository

Build Status

To use:

docker pull jonbaldie/varnish

Alternatively you can git clone the repo and run make from the project root.

What is Varnish?

It's basically Redis for HTTP requests.

Instead of serving identical HTTP requests, eating up resources and bandwidth, Varnish caches requests for as long you like.

Just put it in front of your HTTP server, and it will intercept all HTTP requests.

It's one of the simplest ways to make your website faster.

How does it work?

Expose Varnish on port 80, and point it to your web server using a vcl config file. See the Varnish docs (and Google) for details on how to do this.

For this Docker image, you can ADD your default.vcl file into /etc/varnish/ inside the container. For my own setup I use Docker Compose with mounted volumes, which means any edits I make don't mean I have to rebuild the container.

What about SSL?

Unfortunately Varnish doesn't understand HTTPS requests, so you have to do some creative rerouting of requests to make it work. This is how I do it in my setup:

HTTPS request ==> Nginx container port 443 ==> Varnish container port 80 ==> Nginx port 80 (internal) ==> Website.

HTTP request ==> Varnish container port 80 ==> Nginx port 80 (internal) ==> Website.

This may look ugly, but fortunately with Docker networking this is surprisingly easy to set up, and very performant.

(c) 2017 Jonathan Baldie

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.