• Document Up to Date
  • Updated On 4.0.0

Proxy Configuration

The proxy configuration file contains configuration for the preview proxy servers. To modify the proxy configuration, click on projectTools from the bottom of the Sidebar, then click on Configuration and select Proxy Config from the dropdown list.

Configurations - Open Proxy Configuration

Sample

Here’s a sample Proxy Configuration file (click on the triangle on the left to expand/collapse):

Sample "proxy-config.xml"
CRAFTER_HOME/data/repos/sites/SITENAME/sandbox/config/engine/asset-processing/proxy-config.xml
 1<?xml version="1.0" encoding="utf-8"?>
 2
 3<!--
 4  ~ Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
 5  ~
 6  ~ This program is free software: you can redistribute it and/or modify
 7  ~ it under the terms of the GNU General Public License version 3 as published by
 8  ~ the Free Software Foundation.
 9  ~
10  ~ This program is distributed in the hope that it will be useful,
11  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
12  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  ~ GNU General Public License for more details.
14  ~
15  ~ You should have received a copy of the GNU General Public License
16  ~ along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  -->
18
19<!--
20    This file configures the proxy servers for preview.
21
22    Every request received by Engine will be matched against the patterns of each server
23    and the first one that matches will be used as proxy.
24
25    <server>
26        <id/> (id of the server, can have any value)
27        <url/> (url of the server, if missing or empty the request will be executed locally)
28        <patterns>
29            <pattern/> (regex to match requests)
30        </patterns>
31    </server>
32-->
33
34<proxy-config>
35    <version>1</version>
36    <servers>
37        <!-- Proxy all GraphQL requests to this server (can be any HTTP compatible GraphQL server) -->
38        <server>
39            <id>graphql</id>
40            <url>http://my-graphql-server</url>
41            <patterns>
42                <pattern>/api/1/site/graphql.*</pattern>
43            </patterns>
44        </server>
45
46        <!-- Proxy all Crafter Engine API requests to this server -->
47        <server>
48            <id>engine</id>
49            <url>http://my-crafter-egine-server</url>
50            <patterns>
51                <pattern>/api/.*</pattern>
52            </patterns>
53        </server>
54
55        <!-- Proxy all Crafter Engine static-assets requests to this server -->
56        <server>
57            <id>static-assets</id>
58            <url>http://my-crafter-engine-server</url>
59            <patterns>
60                <pattern>/static-assets/.*</pattern>
61            </patterns>
62            <headersToServer>
63                <header>
64                    <name>authorization</name>
65                    <value>Bearer eyJhbGciOiJQQkVTMi1IUzUxMit...</value>
66                </header>
67            </headersToServer>
68            <headersToClient>
69                <header>
70                    <name>Cache-Control</name>
71                    <value>no-cache\, no-store\, max-age=0\, must-revalidate</value>
72                </header>
73                <header>
74                    <name>Access-Control-Allow-Origin</name>
75                    <value>http://my-crafter-engine-server</value>
76                </header>
77                <header>
78                    <name>Access-Control-Allow-Methods</name>
79                    <value>GET\, PUT</value>
80                </header>
81            </headersToClient>
82        </server>
83
84        <!-- Proxy any other request to this server (can be any web or application server) -->
85        <server>
86            <id>preview</id>
87            <url>http://my-web-server</url>
88            <patterns>
89                <pattern>.*</pattern>
90            </patterns>
91        </server>
92    </servers>
93</proxy-config>


Note

Deleting the config file (proxy-config.xml) from the repo completely disables the proxy feature.

See Using the Proxy Configuration for an example of configuring the proxy with a React application.