burger
infomaniak
infomaniak
cloud-computing-logo
Cloud Computing
web-domain-logo
Web & Domains
event-marketing-logo
Events & Marketing
  • Our products
    • Collaborative tools icon chevron
    • Web & Domains icon chevron
    • Cloud Computing icon chevron
    • Events & Marketing icon chevron
    • Streaming icon chevron

      ksuiteCollaborative suite

      Discover the collaborative suite → Discover →
    • kSuite Professional email, sovereign cloud and AI for sustainable performance
    • kSuite The suite for secure communication, storage and sharing
    • kdrive
      kDrive Store, collaborate and share your files
    • mail service
      Mail Service Create your email addresses with your domain
    • kChat
      kChat Communicate live with your teams
    • kmeet
      kMeet Organise your meetings online in complete security
    • swisstransfer
      SwissTransfer Send your files up to 50 GB free of charge.
    • kpaste
      kPaste Share and encrypt your sensitive information
    • ksuite
      Custom Brand Control the brand image of your products
    • kChat
      Chk Link reducer & QR code generator
      Find the web hosting solution you need
    • Domain name
      Domain name Reserve your domain name at the best price
    • Site Creator
      Site Creator Create your website with ease
    • web hosting
      Web Hosting Create your website with over 100 CMS
    • web hosting
      Wordpress Hosting Create your WordPress website easily
    • Cloud Server
      Cloud Server Power up your sites with guaranteed resources
    • Node.js Hosting Create a dynamic, interactive site with Node.js
    • SSL Certificat
      SSL certificates Secure your websites with an EV or DV certificate
    • Options
    • Domain privacy
      Domain Privacy Protect your domains’ private data
    • DNS Fast Anycast
      FastAnycast DNS Speed up your site access times
    • Dyn DNS
      DynDNS Access your devices remotely
    • Dyn DNS
      Renewal Warranty Secure your domains against loss and theft
      Find the right Cloud Computing solution

      Cloud services

    • public cloud
      Public Cloud (IaaS) Create your projects in a high-end, ultra-competitive Cloud
    • Cloud Server
      VPS Cloud Create a Windows / Linux server
    • Kubernetes service Deploy your containerised apps on a large scale.
    • VPS Lite
      VPS Lite Create a Windows/Linux server at a low cost
    • Database Service Manage your databases with a managed solution
    • jelastic cloud
      Jelastic Cloud (PaaS) Create your own customised environments
    • Other services

    • llm api
      AI Tools Boost your productivity with our sovereign AI
    • swiss backup
      Swiss Backup Back up your devices in the Cloud
    • nas synology
      NAS Synology Rent a NAS in our secure data centers
    • High availibility
      Very High Availability Create a multi-data center infrastructure with customised SLAs
    • Housing
      Housing Install your servers in our data centers
    • Auth Add a privacy-friendly login method to your apps
      Infomaniak Events, the independent local events portal
      Online ticketing service with a wide choice of concerts, shows and events.
    • online shop
      Ticketing Create your ticketing service and sell tickets
    • kdrive
      Access Control Control access to your events with ease
    • kdrive
      Guest manager Automate your event invitations
    • kdrive
      Newsletter Send your newsletters at competitive prices
    • Streaming radio
      Streaming radio Create and broadcast your own live radio station online
    • streaming video
      Video-Streaming Create and broadcast live events and TV online
    • VOD and AOD
      VOD & AOD service Host and broadcast your recordings without limits
  • Resources
    documentation icon Documentation
    Guides & tutorials
    API documentation
    special offers icon Special offers
    Get started for free
    Student programme
    Become an affiliate
    partner program icon Partner programme
    Find a partner
    Become a partner
    support icon Support & contact
    Contact Support
    Premium support - 24/7
    Contact our sales department
    Hiring an expert
    Migrate to Infomaniak
  • About us
    forest
    icon Ecological commitment
    We pollute. But we are taking action to reduce the footprint of our services and infrastructure
    Discover our commitment →
    icon About Infomaniak
    Our vision, our values
    Our teams
    Infomaniak is recruiting
    Press and communication
    Blog and news
    icon Security
    Data confidentiality
    Bug Bounty Programme
  • Get started for free
    Sign in
  • search-icon
    close-icon
      icon

      Would your needs exceed our solutions? To find out, contact us so that we can advise you personally.

      Our flagship products:
  • search-icon
  • Get started for free
    Sign in
Price Price
Knowledge base

1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!

Knowledge base Using Varnish on Cloud Server

    Using Varnish on Cloud Server

    This guide presents several examples of using Varnish on Cloud Server Infomaniak.

     

     

    ⚠ For additional help contact a partner or launch a free tender — also discover the role of the host.

     

    Varnish Configuration

    After installation, configuring Varnish includes important rules for caching and purging. Be careful not to accidentally allow unwanted IP addresses.

    Here is what a basic configuration file might look like with a few common cases and different actions/rules in one example:

    vcl 4.0;
    # Configuration du backend par défaut
    backend default {
        .host = "127.0.0.80";  # Adresse IP du backend
        .port = "80";           # Port du backend
    }
    # Définition d'une liste de contrÎle d'accÚs (ACL) pour les IPs autorisées à purger le cache
    acl purge {
        "localhost";            # IP locale
        "1.2.3.4";              # IP de votre domicile
        "42.42.42.0"/24;        # Plage d'IP publique de votre entreprise
        ! "42.42.42.7";         # Exclusion d'une IP spĂ©cifique (ex : un collĂšgue gĂȘnant)
    }
    # Traitement des requĂȘtes Ă  leur rĂ©ception par Varnish
    sub vcl_recv {
        # Autoriser les requĂȘtes de purge
        if (req.method == "PURGE") {
            # Vérification si l'IP du client est autorisée à purger
            if (!client.ip ~ purge) {  # 'purge' fait référence à l'ACL définie plus haut
                # Retourne une page d'erreur si l'IP n'est pas autorisée
                return (synth(405, "Cette IP n'est pas autorisĂ©e Ă  envoyer des requĂȘtes PURGE."));
            }
            # Si l'IP est autorisĂ©e, purger le cache pour cette requĂȘte
            return (purge);
        }
        # Autoriser la purge de toutes les images via une requĂȘte PURGEALL
        if (req.method == "PURGEALL" && req.url == "/images") {
            if (!client.ip ~ purge) {
                return (synth(405, "Cette IP n'est pas autorisĂ©e Ă  envoyer des requĂȘtes PURGE."));
            }
            # Invalider tous les objets en cache correspondant Ă  des images
            ban("req.url ~ \.(jpg|png|gif|svg)$");
            return (synth(200, "Images purgées."));
        }
        # Ne pas mettre en cache les pages avec une autorisation (header Authorization)
        if (req.http.Authorization) {
            # Passer la requĂȘte directement au backend sans la mettre en cache
            return (pass);
        }
    }
    # Traitement de la réponse du backend avant de la renvoyer au client
    sub vcl_backend_response {
        # Mise en cache des images pour une durée de 1 jour
        if (beresp.http.content-type ~ "image") {
            set beresp.ttl = 1d;
        }
        # Si le backend indique que la rĂ©ponse ne doit pas ĂȘtre mise en cache, respecter cette consigne
        if (beresp.http.uncacheable) {
            set beresp.uncacheable = true;
        }
    }

     

    Purge from the CLI interface

    From there, the rules stated in the configuration above apply to all requests, so if the configured site is "domain.xyz", you can simply use the CLI tool "curl" and do the following:

    # Envoyer une requĂȘte PURGE pour purger la page d'accueil de "domain.xyz"
    $ curl -X PURGE https://domain.xyz/
    # Réponse renvoyée par le serveur Varnish
    <!DOCTYPE html>
    <html>
    <head>
        <title>200 Purged</title>
    </head>
    <body>
        <h1>Erreur 200 : Purge effectuée</h1>
        <p>La page a été purgée avec succÚs.</p>
        <h3>Guru Meditation:</h3>
        <p>XID: 2</p>
        <hr>
        <p>Serveur de cache Varnish</p>
    </body>
    </html>

    And there, the homepage has been purged. Or to purge another URL, simply point the request to the latter:

    # Envoyer une requĂȘte PURGE pour purger un fichier spĂ©cifique Ă  "domain.xyz"
    $ curl -X PURGE https://domain.xyz/some_path/some_file.html
    # Réponse renvoyée par le serveur Varnish
    <!DOCTYPE html>
    <html>
    <head>
        <title>200 Purged</title>
    </head>
    <body>
        <h1>Erreur 200 : Purge effectuée</h1>
        <p>Le fichier a été purgé avec succÚs.</p>
        <h3>Guru Meditation:</h3>
        <p>XID: 4</p>
        <hr>
        <p>Serveur de cache Varnish</p>
    </body>
    </html>

    Or, as indicated in the VCL configuration, purge all images:

    # Envoyer une requĂȘte PURGEALL pour purger toutes les images dans "domain.xyz"
    $ curl -X PURGEALL https://domain.xyz/images
    # Réponse renvoyée par le serveur Varnish
    <!DOCTYPE html>
    <html>
    <head>
        <title>200 Purged images</title>
    </head>
    <body>
        <h1>Erreur 200 : Images purgées</h1>
        <p>Toutes les images ont été purgées avec succÚs.</p>
        <h3>Guru Meditation:</h3>
        <p>XID: 32770</p>
        <hr>
        <p>Serveur de cache Varnish</p>
    </body>
    </html>

     

    Purge from a CMS

    It is a bit more difficult to illustrate this case because there are many ways to manage caching from a backend. In the configuration example above, a control on the header "Uncacheable" is added, which disables caching. With this option, any CMS could simply set this header on the response to disable caching for this request, for example.

    From any PHP code and with the configuration above, you can simply send an HTTP request and use this snippet to perform a PURGE of the cache:

    <?php
    if ($curl = curl_init("http://127.0.0.1/some_url")) {
        curl_setopt_array($curl, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CUSTOMREQUEST => "PURGE",
            CURLOPT_HTTPHEADER => [
                "Host: {$_SERVER['HTTP_HOST']}"
            ]
        ]);
        curl_exec($curl);
        if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
            echo "Cache purged!";
        }
        curl_close($curl);
    }
    ?>

     

    Learn more

    Useful links regarding the Varnish configuration language (VCL) to control request processing, routing, caching and several other aspects:

    • VCL Tutorial
    • VCL user guide
    • VCL Reference


    Link to this FAQ:
    Has this FAQ been helpful?
    Thank you for your feedback. Improve this FAQ?
    Please do not ask any questions through this form, it is only used to improve our FAQ.
    Please use our contact form for any question.
    Your message has been sent. Thank you for suggesting an improvement to this FAQ.
    Display all FAQs for this product
    logo infomaniak
    Prices do not include VAT
    facebook
    twitter
    linkedin
    instagram

    Infomaniak

    About Infomaniak The team Infomaniak is recruiting Press space Infomaniak blog All certificates Products and offers Clients' opinions

    Support

    Assistance 7/7 FAQ and guides Premium Support Sales contact API REST Report abuse WHOIS Statuts Public Cloud Service status

    Partnerships

    Become a reseller Affiliate programme Directory of partners Requests for quotes

    Ecology

    Green hosting Certificates & awards

    Follow our development

    The email entered is invalid
    earth icon
    • EN
      • EN
      • DE
      • ES
      • FR
      • IT
    ©2025 Infomaniak - Legal documents - Legal notice - Data Protection - Privacy Policy - Site map - Manage your cookies
    icann-logo
    swiss
    new-iso
    swiss-hosting
    logo infomaniak
    Prices do not include VAT

    Infomaniak

    About Infomaniak The team Infomaniak is recruiting Press and media Infomaniak blog All certificates Products and offers Clients' opinions

    Support

    Assistance 7/7 FAQ and guides Premium Support offer Sales contact API REST Report abuse WHOIS Statuts Public Cloud Service status

    Partnerships

    Become a reseller Affiliate programme Directory of partners Requests for quotes

    Ecology

    Green hosting Certificates & awards

    Follow our development

    The email entered is invalid
    icann-logo
    swiss
    new-iso
    swiss-hosting

    facebook
    twitter
    linkedin
    instagram
    ©2025 Infomaniak
    Contracts - Legal notice - Data Protection - Privacy Policy - Site map - Manage your cookies

    Managers

    earth icon
    • EN
      • EN
      • DE
      • ES
      • FR
      • IT
    Your browser is outdated, security and browsability are no longer guaranteed. We recommend that you update it as soon as possible by clicking here.