Конфигурация прокси

В этой статье описывается назначение конфигурационного файла прокси, его расположение в CMS Studio и алгоритм его настройки.

Общая информация

DC CMS включает в себя систему прокси, предназначенную для обработки GraphQL, Engine, NodeJS и других систем доставки приложений. Когда запрос направляется в CMS Engine, он проходит проверку сопоставления с шаблонами серверов. Первый совпадающий шаблон определяет сервер, на который направляется запрос. В некоторых системах используются множественные серверы для поиска, CMS Studio и др. В целом, использование прокси упрощает систему.

Заметным преимуществом использования прокси в DC CMS является его способность подключаться к любому удаленному серверу в качестве сервера предварительного просмотра, что облегчает создание проектов, построенных с использованием других языков программирования и технологий, таких как React, Angular или Vue.

Файл конфигурации прокси содержит параметры, необходимые для серверов предварительного просмотра. Для внесения изменений в файл конфигурации прокси:

1. На боковой панели нажмите на Инструменты сайта.

Изображение статьи

2. Перейдите в Конфигурация > Конфигурация прокси.

Изображение статьи

Образец файла конфигурации

Ниже расположен пример конфигурационного файла прокси:

<!--
    This file configures the proxy servers for preview.

    Every request received by Engine will be matched against the patterns of each server
    and the first one that matches will be used as proxy.

    <server>
        <id/> (id of the server, can have any value)
        <url/> (url of the server, if missing or empty the request will be executed locally)
        <patterns>
            <pattern/> (regex to match requests)
        </patterns>
    </server>
-->

<proxy-config>
    <version>1</version>
    <servers>
        <!-- Proxy all GraphQL requests to this server (can be any HTTP compatible GraphQL server) -->
        <server>
            <id>graphql</id>
            <url>http://my-graphql-server</url>
            <patterns>
                <pattern>/api/1/site/graphql.*</pattern>
            </patterns>
        </server>

        <!-- Proxy all CMS Engine API requests to this server -->
        <server>
            <id>engine</id>
            <url>http://my-cms-egine-server</url>
            <patterns>
                <pattern>/api/.*</pattern>
            </patterns>
        </server>

        <!-- Proxy all CMS Engine static-assets requests to this server -->
        <server>
            <id>static-assets</id>
            <url>http://my-cms-engine-server</url>
            <patterns>
                <pattern>/static-assets/.*</pattern>
            </patterns>
            <headersToServer>
                <header>
                    <name>authorization</name>
                    <value>Bearer eyJhbGciOiJQQkVTMi1IUzUxMit...</value>
                </header>
            </headersToServer>
            <headersToClient>
                <header>
                    <name>Cache-Control</name>
                    <value>no-cache\, no-store\, max-age=0\, must-revalidate</value>
                </header>
                <header>
                    <name>Access-Control-Allow-Origin</name>
                    <value>http://my-cms-engine-server</value>
                </header>
                <header>
                    <name>Access-Control-Allow-Methods</name>
                    <value>GET\, PUT</value>
                </header>
            </headersToClient>
        </server>

        <!-- Proxy any other request to this server (can be any web or application server) -->
        <server>
            <id>preview</id>
            <url>http://my-web-server</url>
            <patterns>
                <pattern>.*</pattern>
            </patterns>
        </server>
    </servers>
</proxy-config>

Copy-icon

Удаление конфигурационного файла (proxy-config.xml) из репозитория полностью отключает функцию прокси.

Связанные статьи

Конфигурации