Дата последнего изменения: 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; }
Действуют следующие правила: