dispatcher farm conf in virtualhost | Community
Skip to main content
shuclu
Level 2
October 16, 2015
Solved

dispatcher farm conf in virtualhost

  • October 16, 2015
  • 14 replies
  • 4933 views

hi I am setting up a site caselaw,lp.findlaw.com for my company in cq5. basically based on the urls i want them to go to different servers.

it's working good when there is no query string involved, but what can i do to tell the dispatcher to include the pattern even after the "?"

caselaw.lp.findlaw.com/index.html --> working good (go to server whatever1)

caselaw,lp.findlaw.com/data2/something.html --> working good (go to server whatever2)

caselaw,lp.findlaw.com/ca/something.html --> working good (go to server whatever2)

caselaw,lp.findlaw.com/scripts/getcase.pl?court=fedclaim --> not working (still going to server whatever1)

http://caselaw.lp.findlaw.com/1/fedclaim/1 --> working (go to server whatever2)

http://caselaw.lp.findlaw.com/1.html?/fedclaim/1 --> not working (still going to server whatever1)

 

here is my entire farm conf for the site, can you tell me whether it's doable or how should i have done?

 

  /farm_caselawlp1
    { 
    # Request headers that should be forwarded to the remote server.
    /clientheaders
      {
      # Forward all request headers that are end-to-end. If you want
      # to forward a specific set of headers, you'll have to list
      # them here.
      "*"
      }
     
    # Hostname globbing for farm selection (virtual domain addressing)
    /virtualhosts
      {
      # Entries will be compared against the "Host" request header
      # and an optional request URL prefix.
      #
      # Examples:
      #
      #   www.company.com
      #   intranet.*
      #   myhost:8888/mysite
      "caselaw.lp.findlaw.com"
      }
     
    # The load will be balanced among these render instances
    /renders
      {
                $include "renders.any"
      }
     
    # The filter section defines the requests that should be handled by the dispatcher.
    # The globs will be compared against the request line, e.g. "GET /index.html HTTP/1.1".
    /filter
      {
                $include "filters.any"
      }

    # The cache section regulates what responses will be cached and where.
    /cache
      {
      # The docroot must be equal to the document root of the webserver. The
      # dispatcher will store files relative to this directory and subsequent
      # requests may be "declined" by the dispatcher, allowing the webserver
      # to deliver them just like static files.
      /docroot "/flocal/cache/apache/htdocs/content/public/caselawlp"

          #$include "cache.any"
          $include "no_cache.any"
         
      }
     
    # The statistics sections dictates how the load should be balanced among the
    # renders according to the media-type.
    /statistics
      {
            $include "statistics.any"
      }
    }
  /farm_caselawlp2
    { 
    # Request headers that should be forwarded to the remote server.
    /clientheaders
      {
      # Forward all request headers that are end-to-end. If you want
      # to forward a specific set of headers, you'll have to list
      # them here.
      "*"
      }
     
    # Hostname globbing for farm selection (virtual domain addressing)
    /virtualhosts
      {
      # Entries will be compared against the "Host" request header
      # and an optional request URL prefix.
      #
      # Examples:
      #
      #   www.company.com
      #   intranet.*
      #   myhost:8888/mysite
      "caselaw.lp.findlaw.com/ca/*"
      "caselaw.lp.findlaw.com/data2/*"
      "caselaw.lp.findlaw.com/scripts/callaw*"
      "caselaw.lp.findlaw.com/*court=fedclaim*"
      "caselaw.lp.findlaw.com/*/fedclaim/*"
      }
     
    # The load will be balanced among these render instances
    /renders
      {
                /caselaw-server
        {
                # Hostname or IP of the render
                /hostname "66.35.204.41"
                # Port of the render
                /port "80"
                # Connect timeout in milliseconds, 0 to wait indefinitely
                /timeout "0"
        }
      }
     
    # The filter section defines the requests that should be handled by the dispatcher.
    # The globs will be compared against the request line, e.g. "GET /index.html HTTP/1.1".
    /filter
      {
                $include "filters.any"
      }

    # The cache section regulates what responses will be cached and where.
    /cache
      {
      # The docroot must be equal to the document root of the webserver. The
      # dispatcher will store files relative to this directory and subsequent
      # requests may be "declined" by the dispatcher, allowing the webserver
      # to deliver them just like static files.
      /docroot "/flocal/cache/apache/htdocs/content/public/caselawlp"

          #$include "cache.any"
          $include "no_cache.any"
         
      }
     
    # The statistics sections dictates how the load should be balanced among the
    # renders according to the media-type.
    /statistics
      {
            $include "statistics.any"
      }
    }

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 gopalKa

You can do it at apache. 

14 replies

Adobe Employee
October 16, 2015

I want to understand your infra arch diag for both the servers and LB. For LB --> you just need to talk to your infra admin and they would do. But only if both legacy and new CQ sites have same domain. If they have different domains, you need to use proxypass.

shuclu
shucluAuthor
Level 2
October 16, 2015

i am not sure that i am getting this. you meant doing this in old server? and i am not sure how to control the traffic in the load balancer?

 

kalyanar wrote...

So basically, if they have the same domains, at the LB you can do that. Google for layer 7 rules. F5 LB does it.Load Balancer receives all end user requests and can route each request to either the AEM Web Server (which is running the dispatcher) or the ``Legacy'' Web Server. At LB , create two pools and apply rules. hope this helps.

switch -glob [HTTP::uri] {
  "/content/caselaws/*" -
  "/etc/*" {
    pool aem
  }
  default {
    pool legacy
  }
}

 

Adobe Employee
October 16, 2015

Apologies. I only looked the last mail in the thread.  The old server has a different domain to the new server? 

Adobe Employee
October 16, 2015

So basically, if they have the same domains, at the LB you can do that. Google for layer 7 rules. F5 LB does it.Load Balancer receives all end user requests and can route each request to either the AEM Web Server (which is running the dispatcher) or the ``Legacy'' Web Server. At LB , create two pools and apply rules. hope this helps.

switch -glob [HTTP::uri] {
  "/content/caselaws/*" -
  "/etc/*" {
    pool aem
  }
  default {
    pool legacy
  }
}