Не получается получить встроенные переменные в коде динамического модуля NGINX

Мне нужно получить значение встроенной переменной ssl_session_id, предоставляемую модулем ngx_http_ssl_module, в коде динамического модуля. Однако, не получается получить вообще никакую встроенную переменную, в том числе host, server_name, remote_addr. Функции ngx_hash_strlow, ngx_hash_key, ngx_http_get_variable, ngx_http_get_variable_index результата в итоге не дали. Код вызывался как в обработчике получения событий (риквестов) так и в методе инициализации (ngx_http_get_variable_index требует переменной ngx_conf_t * - это параметр метода инициализации динамического модуля). Первый способ в обработчике событий выглядет так:

ngx_str_t key = ngx_string(varName);
ngx_log_error(NGX_LOG_ALERT,r->connection->log,0,"ngx_str_t key created : %s",key.data);   
 ngx_uint_t hash=ngx_hash_strlow(key.data,key.data,key.len);  
//ngx_uint_t hash=ngx_hash_key(key.data,key.len);  
ngx_log_error(NGX_LOG_ALERT,r->connection->log,0,"ngx_uint_t hash created : %d",hash);
ngx_http_variable_value_t *varValue=ngx_http_get_variable(r,&key,hash);
unsigned int isValid=varValue->valid, isFound=1-varValue->not_found,isCacheable=1-varValue->no_cacheable;  
ngx_log_error(NGX_LOG_ALERT,r->connection->log,0,"ngx_http_variable_value_t *varValue created, found, cacheable, valid : %d, %d, %d .",isFound,isCacheable,isValid);
ngx_log_error(NGX_LOG_ALERT,r->connection->log,0,"ngx_http_variable_value_t *varValue created, len & value : %d, %s",varValue->len,varValue->data);
  

Дает следующий вывод

2020/10/26 11:31:43 [alert] 4536#4536: *2 ngx_str_t key created : remote_addr, client: 10.128.128.125, server: 10.71.5.201, request: "GET /hello HTTP/1.1", host: "10.71.5.201"
2020/10/26 11:31:43 [alert] 4536#4536: *2 ngx_uint_t hash created : 350390858, client: 10.128.128.125, server: 10.71.5.201, request: "GET /hello HTTP/1.1", host: "10.71.5.201"
2020/10/26 11:31:43 [alert] 4536#4536: *2 ngx_http_variable_value_t *varValue created, found, cacheable, valid : 0, 1, 0 ., client: 10.128.128.125, server: 10.71.5.201, request: "GET /hello HTTP/1.1", host: "10.71.5.201"
2020/10/26 11:31:43 [alert] 4536#4536: *2 ngx_http_variable_value_t *varValue created, len & value : 107, ÏŒBåU, client: 10.128.128.125, server: 10.71.5.201, request: "GET /hello HTTP/1.1", host: "10.71.5.201"

И ngx_http_get_variable_index в методе инициализации использовался так

unsigned char varName [100]="$ssl_session_id";  
ngx_str_t key = ngx_string(varName);
ngx_int_t i = ngx_http_get_variable_index(cf,&key);

В итоге получили:

2020/10/26 14:59:55 [alert] 7719#7719: Variable index :  1... in /etc/nginx/nginx.conf:105
2020/10/26 14:59:55 [emerg] 7719#7719: unknown "$ssl_session_id\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" variable

Одна и та же картина получается для многих переменных. В статьях, тем не менее, эти функции успешно используются. Я полагаю, мне надо что-то настроить? Если кто-то знает, подскажите пожалуйста.


Ответы (0 шт):