Clear Varnish at the time of page activation in AEM | Community
Skip to main content
New Participant
June 30, 2016
Solved

Clear Varnish at the time of page activation in AEM

  • June 30, 2016
  • 2 replies
  • 1820 views

Hi Friends,

 I have one situation to clear the varnish pages at the time of CQ5 page activation. 

I am using the httpclient to purge the page in varnish . I am getting correct repsonse 200 Purged but that page is not getting cleared from the varnish. 

Here is the code I am using, Please suggest the changes. Its very very urgent.

org.apache.http.HttpHost host = new HttpHost("IP");

HttpClient client = HttpClientBuilder.create().build();

            BasicHttpRequest purgeRequest = new BasicHttpRequest("PURGE", "URL");
            purgeRequest.setHeader("purgeKey","p0rg3m3!");
            purgeRequest.setHeader("Cache-Control","no-cache");           
            HttpResponse response1= client.execute(host,purgeRequest); 

 

Thanks In Advance :)

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by joerghoh

Hi,

why don't you use the standard replication mechanism and and just create a custom content builder to create the required payload for the request? Replication already supports HTTP.

Jörg

2 replies

joerghoh
joerghohAccepted solution
Employee
July 2, 2016

Hi,

why don't you use the standard replication mechanism and and just create a custom content builder to create the required payload for the request? Replication already supports HTTP.

Jörg

kautuk_sahni
Employee
June 30, 2016

Hi 

I am not an expert at Varnish, all i know it its a middle-ware between Client and Server.

Assuming you know the API for clearing the cache in varnish. To clear it on page activation, you can do:

1. Write a Replication Listener. This will act as a event listener whenever you activate a page/

You can call Varnish API for purging from here.

Reference Link:-  https://helpx.adobe.com/experience-manager/kb/ReplicationListener.html

 

2. Custom workflow on page activation (which will again use replication event listener in it), here also you can all Varnish API for purging.

Reference Link: - http://stackoverflow.com/questions/18864317/start-a-workflow-on-page-activation-without-activating-the-page-in-cq5

 

If your question is how to Purge it, then 

1. This will set caching to disabled on the response:

    // Set standard HTTP/1.1 no-cache headers.
    response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");

    // Set standard HTTP/1.0 no-cache header.
    response.setHeader("Pragma", "no-cache");

 

2. Clear Varnish cache for a url

[:$] varnishadm -T 127.0.0.1:6089 ban.url /index.html

Link:- https://linuxacademy.com/blog/linux/how-to-clear-varnish-cache/

 

3. Command-line purging of Varnish caches

Link:- https://robm.me.uk/ops/2014/12/09/command-line-purging-varnish.html

 

Some AEM Varnish Reference links:- 

https://info.varnish-software.com/blog/advanced-cache-invalidation-applied-replacing-adobe-aem-cq5-dispatcher-with-varnish-plus-part-1

https://info.varnish-software.com/blog/advanced-cache-invalidation-part2

 

I hope this might help you.

Thanks and Regards

Kautuk Sahni

Kautuk Sahni