Disable the Coveo for Sitecore Reverse Proxy

Sitecore (October 30, 2020)

As of the October 30, 2020 release, you can disable the Coveo for Sitecore reverse proxy through the Command Center.

Enabling proxy setting in Command Center

When you disable the Coveo for Sitecore reverse proxy, your Coveo-powered search interface usage analytics and search requests are performed directly against Coveo Platform endpoints.

Animation showing search request relaying with proxy
Search request handling and processing with Coveo for Sitecore reverse proxy enabled

  1. Coveo-powered search page sends search request to Coveo for Sitecore proxy endpoint.
  2. Coveo for Sitecore query processing pipeline processors modify request payload.
  3. Coveo for Sitecore proxy relays modified search request to Coveo Platform search endpoint.
  4. Coveo Platform sends response back to proxy endpoint.
  5. Coveo for Sitecore response processing pipeline processors modify JSON response.
  6. Coveo for Sitecore proxy relays modified response to search page.
Image showing search request path without proxy
Search request and response with Coveo for Sitecore reverse proxy disabled

  1. Coveo-powered search page sends search request directly to Coveo Platform search endpoint.
  2. Coveo Platform sends response back to search page.

Pros and Cons of Disabling the Reverse Proxy

Choosing between using or disabling the Coveo for Sitecore reverse proxy is a matter of context.

  • A Coveo for Commerce customer using Sitecore on Azure should bypass the proxy to increase perceived search performance and to reduce Azure usage costs. Moreover, the Coveo for Commerce customer draws no advantage from Coveo for Sitecore search pipelines designed to handle responses containing Coveo for Sitecore source data (see Compatibility With Sitecore Commerce).

  • A customer with a scaled on-premises Sitecore XM or XP environment would benefit from enabling the reverse proxy, especially if they’re inclined to leverage Coveo for Sitecore search pipelines for custom code.

In more detail, consider the advantages and drawbacks in the table below when deciding whether to disable the Coveo for Sitecore reverse proxy.

Criterion Using the proxy Bypassing the proxy
Host resolving + Out of the box, a Coveo for Sitecore response processing proxy pipeline runs the ResolveResultClickableUriProcessor processor and resolves your item clickable URIs in the context of the current site. - In a scaled Sitecore environment, you will need to account for the fact your clickable URIs are not automatically recomputed at query time (for example, by ensuring your items are indexed with Content Delivery (CD) site URIs).
Search query durations - Search query requests and responses are relayed by the proxy. Server thread handling, proxy pipeline operations (e.g., deserialization and reserialization of search request payloads), and processor execution increase overhead. + Your search requests are sent directly from your search interface to the Coveo Platform search endpoint, resulting in shorter query durations.
Custom processing of search queries/results + Coveo for Sitecore provides pipelines to alter search queries before they're sent to the Coveo Platform, and to handle and modify the Platform responses. You can run your custom processors in these pipelines, leveraging Sitecore context (see About the REST Endpoint Pipelines). - You will need to consider using query pipeline features to alter search requests in the Coveo Platform before they're sent to the index. Though query pipeline features are powerful, only the trigger feature lets you alter the query response, but not the search results themselves.
Load on server - Using the proxy produces two hits on your server for each search and usage analytics request, increasing the load on your server. + Your server is hit only once for each search and usage analytics request. On hosted platforms (e.g., Azure), where usage costs may depend on the number of hits to your backend, bypassing the proxy can translate into cost reductions.
What's Next for Me?