Дата последнего изменения: 19.08.2021
Условия разделены на две группы:
Настройки определяются в файле: /etc/nginx/bx/maps/composite_settings.conf. NGINX не использует технологию Композитный сайт, если соблюдается хотя бы одно условие:
BX_ACTION_TYPE,BX_AJAX,ncc,bxajaxid,sessid,Определение условий сделано через http_ngx_map_module:
$http_bx_action_type содержит данные, то композитный ключ $not_bx_action_type будет содержать 0.
map $http_bx_action_type $not_bx_action_type {
default "0";
'' "1";
}# test all global conditions
map "${not_bx_action_type}${not_bx_ajax}${is_get}${non_arg_ncc}${non_arg_bxajaxid}${non_arg_sessid}${is_modern}${is_good_uri}${non_cookie_ncc}${is_storedAuth}" $is_global_composite {
default "1";
~0 "0";
}
Если хоть одно из условий содержало 0, то итоговое значение переменной $is_global_composite будет равно 0.
Персональные проверки NGINX для сайта, определяются в момент включения или обновления композита из консольного меню. Для таких настроек создается и обновляется файл в каталоге: /etc/nginx/bx/maps/. Имя файла имеет специальный формат: <ID>.cache_<SITE_NAME>.conf, где:
NGINX не будет использовать композитный кеш, если выполняется хотя бы одно из условий:
~EXCLUDE_PARAMS в .config.php),DOMAINS в .config.php),~INCLUDE_MASK в .config.php),~EXCLUDE_MASK в .config.php).Определение условий сделано через http_ngx_map_module:
INCLUDE_MASK для запроса, будет создана следующая структура:
# test include uri for site
map $uri $is_include_uri_02 {
default "0";
"~*^.*?\.php$" "1";
"~*^.*?/$" "1";
}
Если переменная $uri содержит одно из следующих регулярных выражений, то $is_include_uri_02 будет содержать 1, в остальных случая переменная будет равна 0.
# variable $is_site_composite_02 used in site config
map "${config_domain_02}${is_include_uri_02}${not_exclude_uri_02}${not_https_schema_02}" $is_site_composite_02 {
default "1";
~0 "0";
}
Если хоть одна из переменных получит значение 0, переменная $is_site_composite_02 будет содержать 0, в остальных случаях 1.Ключ - это файл, который NGINX будет искать в композитном кеше (ключ для memcached хранилища, файл в случае хранения на файлах). Он нужен для того, чтобы привести запрос на сайт (uri) к универсальному виду.
Данный ключ определяется в глобальных настройках в файле /etc/nginx/bx/maps/composite_settings.conf. Так же, как для условий, используется модуль nginx ngx_map_module:
map $uri $composite_key {
default $uri;
~^(?P.+)/$ $non_slash;
~^(?P.+)/index.php$ $non_index;
~^(?P.+)/index.html$ $non_index;
}
Действуют следующие правила: