Тип сeрвиса ServiceStatic#

Сервисы типа service_static предназначены для раздачи статического контента.

В контексте service объявляется соответствующий тип сервиса service_static:

service:
  service_static:

Каждый сервис представляет собой последовательность, включающую в себя следующие параметры:

Обязательные параметры:

  • id

    Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах, хранящих информацию о сервисе.

    Значение параметра id должно быть уникальным.

    Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание " _ ".

    Количество сервисов не ограничено конфигуратором явно.

    - id: 1
      ...
    - id: my_service_one
      ...
    

    Тип параметра: текстовое значение.

  • url

    В значении параметра определяется относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение.

    url: /my_service_url
    

    Значение параметра url должно быть уникальным.

    Тип параметра: текстовое значение.

Опциональные параметры:

  • name

    Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций.

    Значение параметра name должно быть уникальным.

    Обязательно в случае:

    optional:
      event_hook:
        ...
    

    Тип параметра: строковое значение.

    По умолчанию: значение задается пользователем.

  • profile_version

    В значении параметра определяется версия профиля данного сервиса.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • description

    Параметр предназначен для хранения строки с описанием сервиса.

    Значение параметра description не является уникальным.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • listen

    Параметр listen является обязательным только для сервиса типа service_main_proxy. Для сервисов иных типов параметр listen опционален.

    В случае, если параметр listen не указан (имеется ввиду наличие данного параметра в сервисе типа service_main_proxy и отсутствие в сервисах иных типов), для взаимодействия между сервисами используются unix-сокеты.

    Последовательность, включающая в себя параметры, описанные в разделе "Параметр listen".

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: значения последовательности задаются пользователем.

  • hostname

    В значении параметра указывается виртуальное имя сервера.

    hostname:
      - localhost
    

    Тип параметра: последовательность строковых значений.

    По умолчанию: Значения строковой последовательности задаются пользователем.

  • response_headers

    Тип параметра: последовательность строковых значений.

    По умолчанию: значения последовательности задаются пользователем.

    Обязательные параметры:

    • name

      В значении параметра определяется имя заголовка ответа.

      Тип параметра: строковое значение.

    • value

      В значении параметра определяется значение заголовка ответа.

      Обязательно в случае:

      • value_from_header is None.

      Тип параметра: строковое значение.

    • value_from_header

      В значении параметра задается имя заголовка запроса для установки его значения в заголовок ответа.

      Обязательно в случае:

      • value is None.

      Тип параметра: строковое значение.

  • chains

    Группа параметров представляет собой механизм для построения цепочек валидаторов любой сложности.

    Для данного сервиса разрешены следующие chains, описанные в разделе "Параметр chains_request".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • response_generator

    Группа параметров, описанных в разделе "Параметр response_generator", для генерации ответов.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • allowed_queries

    Группа параметров, описанных в разделе "Параметр allowed_queries", используемых для указания разрешенных методов запроса и параметров запроса.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • optional

    Группа параметров, описанных в разделе "ServiceStatic - optional", и используемых в сервисе для:

    • указания статических ресурсов

    • index

    • и т.д.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

Пример минимальной настройки:

version: 2.0.3
profile: profile_name
system:
  wrk_count: 4
  conn_count: 2048
  optional:
    wrk_user: sowactl
    log_level: error
service:
  service_static:
    - id: js
      listen:
        - port: 8080
      hostname:
        - localhost
      description: static JS scripts
      url: /analytics
      optional:
        index: bundle.js

SеrviceStatic - optional#

В разделе приведено описание опциональных параметров для сервиса ServiceStatic.

Опциональные параметры:

  • log_level

    В значении параметра осуществляется переопределение уровня логирования для сервиса.

    Тип параметра:

    • debug;

    • info;

    • notice;

    • warn;

    • error;

    • crit;

    • alert;

    • off.

    По умолчанию: Значение параметра наследуется от значения в system.

  • group_access_log

    В значении параметра указывается, группировать или нет access журналы по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500).

    Тип параметра: логическое значение:

    • true;

    • false.

    По умолчанию:

    group_access_log: false
    
  • log_format

    В значении параметра указывается формат логирования.

    Тип параметра: текстовое значение.

    По умолчанию: значение по умолчанию отсутствует.

  • root

    В значении параметра определяется корневой каталог для раздаваемого статического контента. Значение должно быть относительным путем от пользовательских ресурсов.

    Например, если url сервиса "/i/", а "root: /data/w3", то в ответ на запрос "/i/top.gif" будет отдан файл /data/w3/i/top.gif.

    Путь к файлу формируется путем простого добавления URI к значению директивы root. Если же URI необходимо поменять, следует воспользоваться директивой alias.

    Используется в случае:

    • alias is None.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • alias

    В значении параметра определяется каталог, для замены корневого каталога, для раздаваемого статического контента. Значение должно быть относительным путем от пользовательских ресурсов.

    Например, если url сервиса "/i/", а "alias: /data/w3/images/", то на запрос "/i/top.gif" будет отдан файл /data/w3/images/top.gif.

    Если url сервиса задан регулярным выражением, то регулярное выражение должно содержать выделения, а сам alias — ссылки на эти выделения, например:

    url: ^/users/(.+\.(?:gif|jpe?g|png))$
    optional:
      alias: /data/w3/images/$1
    

    Используется в случае:

    • root is None.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • index

    В значении параметра указывается имя индексной страницы или файла.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • rewrite

    Изменение URI в соответствии со строкой замены.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

    Обязательные параметры:

    • from

      В значении параметра указывается "что" изменить.

      Тип параметра: текстовое значение.

    • to

      В значении параметра указывается на "что" изменить.

      Тип параметра: текстовое значение.

    Опциональные параметры:

    • flag

      В значении параметра указывается флаг изменения.

      Тип параметра: текстовое значение.

      • last - завершается обработка текущего набора директив секции rewrite, после чего ищется новый location, соответствующий измененному URI;

      • break;

      • redirect - возвращает временное перенаправление с кодом 302; используется, если заменяющая строка не начинается с “http://”, “https://” или “$scheme”;

      • permanent - возвращает постоянное перенаправление с кодом 301.

      По умолчанию: значение задается пользователем.

  • response_code

    В значении параметра устанавливается код состояния ответа.

    Тип параметра: целочисленное значение.

    По умолчанию: значение задается пользователем.

  • response_body

    В значении параметра устанавливается тело ответа.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • response_file

    В значении параметра указывается файл ответа.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • client_header_timeout

    В значении параметра указывается таймаут при чтении заголовка запроса клиента.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней); -y - год (365 дней).

    По умолчанию:

    client_header_timeout: 60s
    
  • client_body_timeout

    В значении параметра указывается таймаут при чтении тела запроса клиента.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней); -y - год (365 дней).

    По умолчанию:

    client_body_timeout: 60s
    
  • keepalive_timeout

    В значении параметра указывается таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней); -y - год (365 дней).

    По умолчанию:

    keepalive_timeout: 75s
    
  • keepalive_requests

    В значении параметра указывается максимальное число запросов, которые можно сделать по одному keep-alive соединению.

    Тип параметра: целочисленное значение.

    По умолчанию:

    keepalive_requests: 10000
    
  • send_timeout_to_client

    В значении параметра указывается таймаут при передаче ответа клиенту.

    Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями записями.

    Если по истечении этого времени клиент ничего не примет, соединение будет закрыто.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней); -y - год (365 дней).

    По умолчанию:

    send_timeout_to_client: 60s
    
  • session

    В значении параметра включается поддержка http сессии.

    session_module (параметры: session, session_timeout, session_cookie_name, session_redirect_timeout, session_show) предоставляет собой функцию отслеживания http запросов - записывается информация о сеансе, устанавливая cookie в браузере клиента. Некоторые модули безопасности, такие как ip_behavior, основываются на данном модуле.

    Тип параметра: логическое значение:

    • on;

    • off.

    По умолчанию:

    session: off
    
  • session_timeout

    В значении параметра указывается таймаут сессии.

    Тип параметра: целочисленное значение.

    По умолчанию:

    session_timeout: 60s
    
  • session_cookie_name

    В значении параметра указывается имя куки сессии.

    Тип параметра: текстовое значение.

    По умолчанию:

    session_cookie_name: SENGINX-SESSION-ID
    
  • session_redirect_timeout

    В значении параметра устанавливается время ожидания после отправки SEnginx ответа перенаправления клиенту в секундах.

    Значение в секундах. Значение не должно быть больше session_timeout.

    Тип параметра: целочисленное значение.

    По умолчанию:

    session_redirect_timeout: 5
    
  • session_show

    В значении параметра определяется возможность просматривать информацию о текущих сессиях.

    Тип параметра: логическое значение:

    • true;

    • false.

    По умолчанию:

    session_show: false
    
  • session_cache

    В значении параметра определяется размер кэша для TLS(SSL) сессии.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значение по умолчанию оценивается автоматически.

    Обязательные параметры:

    • type

      В значении параметра определяется тип размера кэша.

      Значение параметра type должно быть уникальным.

      Тип параметра:

      • off - жесткое запрещение использования кэша сессий: nginx явно сообщает клиенту, что сессии не могут использоваться повторно;

      • none - мягкое запрещение использования кэша сессий: nginx сообщает клиенту, что сессии могут использоваться повторно, но на самом деле не хранит параметры сессии в кэше;

      • builtin - встроенный в OpenSSL кэш, используется в рамках только одного рабочего процесса. Размер кэша задается в сессиях. Если размер не задан, то он равен 20480 сессиям. Использование встроенного кэша может вести к фрагментации памяти;

      • shared - кэш, разделяемый между всеми рабочими процессами. Размер кэша задается в байтах, в 1 мегабайт может поместиться около 4000 сессий. У каждого разделяемого кэша должно быть произвольное название. Кэш с одинаковым названием может использоваться в нескольких виртуальных серверах.

      По умолчанию: не имеет значения по умолчанию.

    • name

      В значении параметра указывается имя размера.

      Используется в случае:

      • type: shared.

      Тип параметра: строковое значение.

      По умолчанию: не имеет значения по умолчанию.

    • size

      В значении параметра указывается величина размера.

      Используется в случае:

      • type: builtin;

      • type: shared.

      Тип параметра: текстовое значение с суффиксом:

      • число без суффикса - байты;

      • k / K - килобайты;

      • m / M - мегабайты.

      По умолчанию: не имеет значения по умолчанию.

    session_cache:
      type: shared
      name: my_name_size
      size: 4k
    
  • upload_size_limit

    В значении параметра определяется ограничение размера тела запроса.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

    Обязательные параметры:

    • size

      В значении параметра задается максимальный размер тела запроса.

      Тип параметра: текстовое значение с суффиксом:

      • число без суффикса - байты;

      • k / K - килобайты;

      • m / M - мегабайты.

      По умолчанию: не имеет значения по умолчанию.

    Опциональные параметры:

    • drop

      В значении параметра определяется, нужно ли сбрасывать соединение при превышении size.

      Тип параметра: логическое значение:

      • on;

      • off.

      По умолчанию:

      drop: off
      
    • (2.3) enable

      В значении параметра определяется, включать ли ограничение размера тела запроса.

      Тип параметра: логическое значение:

      • true;

      • false.

      По умолчанию:

      enable: true
      
    upload_size_limit:
      size: 40M
      drop: on
      enable: true
    
  • download_size_limit

    В значении параметра определяется ограничение размера тела ответа.

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

    Обязательные параметры:

    • size

      В значении параметра задается максимальный размер тела запроса.

      Тип параметра: текстовое значение с суффиксом:

      • число без суффикса - байты;

      • k / K - килобайты;

      • m / M - мегабайты.

      По умолчанию: не имеет значения по умолчанию.

    Опциональные параметры:

    • drop

      В значении параметра определяется, нужно ли сбрасывать соединение при превышении size.

      Тип параметра: логическое значение:

      • on;

      • off.

      По умолчанию:

      drop: off
      
    • (2.3) status

      В значении параметра задается статус код при превышении размера тела ответа.

      Тип параметра: текстовое значение.

      По умолчанию:

      status: 413
      
    download_size_limit:
      size: 50k
      drop: off
      status: 413
    
  • set_variable

    В значении параметра могут быть определены имена переменных и их значения.

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: значения последовательности задаются пользователем.

    Обязательные параметры:

    • name

      В значении параметра указывается имя переменной.

      Тип параметра: текстовое значение.

    • value

      В значении параметра указывается значение переменной.

      Тип параметра: текстовое значение.

  • limit_req

    Группа параметров limit_req предназначена для ограничения скорости обработки запросов. В ней определяется, требуется ли пропускать избыточные запросы в пределах всплеска без задержки.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр limit_req".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • robot_mitigation

    Группа параметров robot_mitigation предназначена для противодействия роботам отправляющим HTTP запросы, а также сканированию портов. Принцип работы основан на отправке клиенту ответов на его запросы, которые должны быть интерпретированы клиентом требуемым образом, для того чтобы модуль мог определить допустимую активность.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр robot_mitigation".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • ip_behavior

    Группа параметров ip_behavior предназначена для мониторинга поведения пользователей при доступе к серверу. ip_behavior в основном используется с другими группами параметров безопасности, такими как limit_req и robot_mitigation. ip_behavior поддерживает обнаружение доступа только через url.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр ip_behavior".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • cookie_poisoning

    Группа параметров cookie_poisoning отслеживает заголовки Set-Cookies и значения cookie в ответе со стороны сервера. Если отслеживаемые значения файлов cookie изменяются на стороне клиента, cookie_poisoning обнаруживает это и выполняет действия в соответствии с настройками пользователя. Группа параметров зависит от session_module (параметры: session, session_timeout, session_cookie_name, session_redirect_timeout, session_show), поэтому перед использованием директив cookie_poisoning необходимо сначала включить session_module.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр cookie_poisoning".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • spnego

    Группа параметров spnego предназначена для аутентификации kerberos.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр spnego".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • gzip

    Группа параметров gzip позволяет осуществлять сжатие ответа одноименным методом.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр gzip".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • async_io

    Группа параметров, отвечающих за настройку файлового асинхронного ввода-вывода.

    Группа, включающая в себя параметры, рассмотренные в разделе "Параметр async_io".

    Тип параметра: группа параметров и их значения.

    По умолчанию: значения группы задаются пользователем.

  • log_masking - группа параметров log_masking предназначена для задания правил маскирования чувствительной информации в логах событий и логов транзакции фильтров безопасности.

    Группа параметров, описанных в разделе "Параметр log_masking_rules".

    Возможные значения: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • logging - группа параметров logging предназначена для задания параметров отправки событий конфигуратора.

    Группа параметров, описанных в разделе "Параметр logging".

    Возможные значения: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

  • (2.4) pipelined_requests - в значении параметра указывается признак запрета использования HTTP pipelined requests для входящих запросов клиента. Если установлено значение off, то в случае получения нескольких pipelined запросов будет обработан только первый, после чего соединение будет закрыто и в логах появится сообщение об ошибке.

    Возможные значения:

    • on;

    • off.

    По умолчанию: on.

  • (2.4) http2_only - включение ограничения приема входящих соединений только по протоколу http2.

    Возможные значения:

    • on;

    • off.

    По умолчанию: off.

  • (2.4) keepalive_time - ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.

    Возможные значения: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию: 1h.

  • (2.2) log_masking_rules

    В значении параметра могут быть определены правила маскирования данных в заголовках и телах запросов/ответов.

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: не имеет значения по умолчанию.

    • log_type

      Тип логов.

      Возможные значения:

      • all - все типы

      • security - логи транзакций фильтра безопасности

      • event - логи событий.

      По умолчанию: all

    • log_type

      Тип логов.

      Возможные значения:

      • all - все типы

      • security - логи транзакций фильтра безопасности

      • event - логи событий.

      По умолчанию: all

    • object

      Объект, к которому применяется маскирование

      Возможные значения:

      • request_header - заголовки запроса;

      • response_header - заголовки ответа;

      • request_body - тело запроса;

      • response_body - тело ответа.

      Обязателен для заполнения.

      По умолчанию: нет.

    • object

      Объект, к которому применяется маскирование

      Возможные значения:

      • request_header - заголовки запроса;

      • response_header - заголовки ответа;

      • request_body - тело запроса;

      • response_body - тело ответа.

      Обязателен для заполнения.

      По умолчанию: нет.

    • header

      Имя заголовка, к которому применяется маскирование

      Возможные значения: заполняется и обязателен тогда, когда указан object = request_header/response_header

      По умолчанию: нет.

    • expression

      Регулярное выражение содержащее группы .

      Возможные значения: должно содержать хотя бы одну группу для определения фрагмента замены. Задается для object = request_body/response_body.

      Обязателен для заполнения.

      По умолчанию: нет.

    • replace_all

      Заменять все или первое найденное.

      Возможные значения: on/off - определяет, будут ли заменяться только первое найденное значение или все. В том случае, если гарантировано вхождение будет только один раз рекомендуется устанавливать явно значение off для оптимизации производительности. Применяется только для object = request_body/response_body.

      По умолчанию: on.

    • mask_symbol

      Символ, который используется для замены.

      Возможные значения: определяет какой символ будет использоваться для замены.

      По умолчанию: *.