listen
syntax: listen [ip:]port Бэклог = число Рквбуф = размер Сндбуф = размер Деферред Бинд ССЛ Со_кипэйвэл = вкл | выкл | [кипэйвдл: кипнтвл: кипнт]
По умолчанию: слушать :0;
Контекст: сервер
Пример:
слушать 127.0.0.1:110;
слушать *:110;
слушать 110; # то же, что и *:110
Задаёт адрес и порт для IP, на котором сервер будет принимать запросы. Сейчас поддерживается только IPv4.
Один server{} может иметь разные адреса IP. Но в одном server{} можно задать только один указанный порт.
Синтаксис: протокол
имя_протокола;
По умолчанию: -;
Контекст: сервер
Пример:
протокол демо;
Имя_протокола должно быть определено в реализованном модуле, таком как ngx_tcp_demo_module. В одном server{} может быть только одно указанное имя_протокола.
Синтаксис: рид_тайм_аут
время;
По умолчанию: 60 с;
Контекст: TCP, сервер
Пример:
рид_тайм_аут 60с;
Устанавливает тайм-аут для чтения всех данных протокола.
Синтаксис: сенд_тайм_аут
время;
По умолчанию: 60 с;
Контекст: TCP, сервер
Пример:
сенд_тайм_аут 60с;
Устанавливает тайм-аут для передачи ответа клиенту. Тайм-аут устанавливается только между двумя последовательными операциями записи, а не для передачи всего ответа. Если клиент не получит ничего в течение этого времени, соединение будет закрыто.
Синтаксис: кипэйвэл_тайм_аут
время;
По умолчанию: 6000 с;
Контекст: TCP, сервер
Пример:
кипэйвэл_тайм_аут 6000с;
Устанавливает тайм-аут, в течение которого клиентское соединение keep-alive будет оставаться открытым на стороне сервера. Нулевое значение отключает клиентские соединения keep-alive. (TODO: разрешить никогда не закрывать клиентское соединение)
Синтаксис: коннекшн_пул_сайз
размер;
По умолчанию: 0,5 к;
Контекст: TCP, сервер
Пример:
коннекшн_пул_сайз 1к;
Позволяет точно настроить выделение памяти для каждого соединения. Эта директива оказывает минимальное влияние на производительность и обычно не должна использоваться.
Синтаксис: сешн_пул_сайз
размер;
По умолчанию: 1 к;
Контекст: TCP, сервер
Пример:
сешн_пул_сайз 1к;
Позволяет точно настроить выделение памяти для каждой сессии. Эта директива оказывает минимальное влияние на производительность и обычно не должна использоваться. Оптимальное значение немного больше средней длины принимаемых данных, чтобы можно было полностью использовать память и минимизировать время выделения.
Синтаксис: клиент_макс_боди_сайз
размер;
По умолчанию: 1 к;
Контекст: TCP, сервер
Пример:
клиент_макс_боди_сайз 1к;
Устанавливает максимально допустимый размер тела клиентского запроса, указанный протоколом.
Синтаксис: эррор_лог
файл | stderr | [debug | info | notice | warn | error | crit | alert | emerg];
По умолчанию: эррор_лог логс/эррор.лог эррор;
Контекст: main, TCP, сервер
Пример:
эррор_лог логс/эррор.лог эррор;
# или в tcp{},server{} ниже:
эррор_лог логс/эррор_tcp.лог дебг_tcp;
Настраивает ведение журнала. 'дебг_tcp' можно использовать как 'дебг_http'.
Синтаксис: энлог
локальный_ип:локальный_порт удалённый_ип:удалённый_порт;
По умолчанию: —;
Контекст: main, TCP, сервер
Пример:
эррор_лог логс/эррор.лог эррор;
энлог 0.0.0.0:5001 0.0.0.0:5151; # энлог должен быть установлен после эррор_лога.
Настраивает IP-адрес для поддержки ведения журнала на UDP-сервере журналов.
Синтаксис: аллов
ип | all;
По умолчанию: —;
Контекст: TCP, сервер
Пример:
аллов 127.0.0.1;
аллов 127.0.0.0/24;
аллов all;
Разрешает доступ для указанной сети или адреса. Правила проверяются. Запрещает доступ для указанной сети или адреса. Правила проверяются по очереди, пока не будет найдено первое соответствие.
Конфигурирует серверы имён, используемые для разрешения имён вышестоящих серверов в адреса. По умолчанию nginx кэширует ответы, используя значение TTL ответа. Необязательный параметр valid позволяет переопределить его.
Устанавливает тайм-аут для разрешения имени.
Определяет формат журнала. Формат журнала может содержать общие переменные и переменные, существующие только во время записи в журнал:
Задаёт путь и формат для буферизованной записи в журнал. На одном уровне можно указать несколько журналов.
Настраивает IP-адрес для поддержки ведения журнала на UDP-сервере журналов.
См. http://nginx.org/en/docs/http/ngx_http_ssl_module.html.
См. http://nginx.org/en/docs/http/ngx_http_ssl_module.html.
См. http://nginx.org/en/docs/http/ngx_http_ssl_module.html.
См. http://nginx.org/en/docs/http/ngx_http_ssl_module.html.
См. http://nginx.org/en/docs/http/ngx_http_ssl_module.html.
См. http://nginx.org/en/docs/http/ngx_http_ssl_module.html. Синтаксис: process_by_lua
lua-script-str;
По умолчанию: -
Контекст: сервер
Пример:
process_by_lua 'ngx.exit()';
Выполняет строку кода Lua, указанную в , для запросов каждого соединения. Код Lua может выполнять вызовы API и выполняется как новая порождённая сопрограмма в независимой глобальной среде (т. е. в «песочнице»).
process_by_lua_file
Синтаксис: process_by_lua_file
path-to-lua-script-file;
По умолчанию: -
Контекст: сервер
Пример:
process_by_lua_file 'conf/test.lua';
Эквивалентен process_by_lua
, за исключением того, что файл, указанный в , содержит код Lua или байт-код Lua/LuaJIT, который должен быть выполнен.
lua_socket_connect_timeout
Синтаксис: lua_socket_connect_timeout
time;
По умолчанию: 60 с;
Контекст: tcp, сервер
Пример:
lua_socket_connect_timeout 5;
Эта директива управляет значением таймаута по умолчанию, используемым в методе connect объекта сокета TCP, и может быть переопределена методом settimeout.
Аргумент
lua_socket_send_lowat
Синтаксис: lua_socket_send_lowat
size;
По умолчанию: 0;
Контекст: TCP, сервер
Пример:
lua_socket_send_lowat 0;
Управляет значением lowat (низкий уровень воды) для буфера отправки cosocket.
lua_socket_pool_size
Синтаксис: lua_socket_pool_size
size;
По умолчанию: 30;
Контекст: TCP, сервер
Пример:
lua_socket_pool_size 10;
Указывает предельный размер (в терминах количества соединений) для каждого пула соединений cosocket, связанного с каждым удалённым сервером (то есть идентифицированным либо парой хост-порт).
Когда пул соединений превышает доступный предельный размер, наименее недавно использованное (простаивающее) соединение, уже находящееся в пуле, будет закрыто, чтобы освободить место для текущего соединения.
Обратите внимание, что пул соединений cosocket относится к каждому отдельному рабочему процессу nginx, а не к экземпляру сервера nginx, поэтому указанный здесь предел размера также применяется к каждому отдельному процессу рабочего процесса nginx.
lua_check_client_abort
Синтаксис: lua_check_client_abort
on|off;
По умолчанию: off;
Контекст: TCP, сервер
Пример:
lua_check_client_abort on;
Эта директива контролирует, следует ли проверять преждевременное прерывание клиентского соединения.
lua_shared_dict
Синтаксис: lua_shared_dict
name size;
По умолчанию: —;
Контекст: TCP
Пример:
lua_shared_dict dogs 10m;
Объявляет зону общей памяти, , которая будет служить хранилищем для словаря shm на основе Lua ngx.shared..
Зоны общей памяти всегда совместно используются всеми рабочими процессами nginx в текущем экземпляре сервера nginx.
Аргумент принимает такие единицы измерения, как k и m. Не менее 8k;
lua_regex_cache_max_entries
Синтаксис: lua_regex_cache_max_entries
num;
По умолчанию: 1024;
Контекст: TCP
Пример:
lua_shared_dict dogs 10m;
Определяет максимальное количество записей, разрешённых в кэше скомпилированных регулярных выражений уровня рабочего процесса.
Регулярные выражения, используемые в ngx.re.match, ngx.re.gmatch, ngx.re.sub и ngx.re.gsub, будут кэшироваться в этом кэше, если указан флаг компиляции o (т.е. флаг компиляции один раз).
lua_regex_match_limit
Синтаксис: lua_regex_match_limit
num;
По умолчанию: 0;
Контекст: TCP
Пример:
lua_shared_dict dogs 10m;
Задаёт «предел соответствия», используемый библиотекой PCRE при выполнении API ngx.re. Чтобы процитировать страницу руководства PCRE, «предел ... имеет эффект ограничения объёма обратного отслеживания, которое может иметь место».
При достижении предела появляется ошибка:
... pcre_exec() failed: -8 будет возвращено функциями API ngx.re в области Lua.
При установке ограничения на 0 используется «предел соответствия по умолчанию» при компиляции библиотеки PCRE. И это значение по умолчанию для этой директивы.
Синтаксис: demo_echo
str;
По умолчанию: -;
Контекст: сервер
Пример:
demo_echo "hello world";
Эта директива используется для ngx_tcp_demo_module, который определяет протокол эхо. Поток запроса содержит 4 байта заголовка, содержащих длину данных запроса. Когда задана строка demo_echo, сервер ответит 4-байтовым заголовком, содержащим длину данных ответа, и строкой demo_echo. Если эта директива не задана, данные тела ответа являются данными тела запроса.
local client_sock = ngx.socket.tcp()
client_sock:settimeout(5000,1000,3000)
local data = "hello world 1234567890"
local data_len = string.len(data)
local data_len_h = netutil.htonl(data_len)
local req_data = netutil.packint32(data_len_h) .. data
local upstream_test = function(u)
local ret,err = u:connect("127.0.0.1",8000,"127.0.0.1_8000_1");
local reuse = u:getreusedtimes()
ngx.log(ngx.INFO,"connect : "..tostring(ret).." "..tostring(err).." "..tostring(reuse))
if not ret then
return
end
ret,err = u:send(req_data)
ngx.log(ngx.INFO,"send : "..tostring(ret).." "..tostring(err))
if not ret then
return
end
local data,err = u:receive(4,nil)
if use_log then ngx.log(ngx.INFO,"receive : "..tostring(data).." "..tostring(err)) end
if not data then
return
end
local totoal_len = netutil.unpackint32(string.sub(data,1,4))
ngx.log(ngx.INFO,"totoal_len : "..tostring(totoal_len))
local data,err = u:receive(totoal_len - 4,nil)
ngx.log(ngx.INFO,"receive again: ["..tostring(data).."] "..tostring(err))
if not data then
return
end
if totoal_len - 4 ~= #data then
ngx.log(ngx.INFO,"receive len not match")
return
end
u:setkeepalive()
end
local test_shm = function()
local key = "x"
local value = "hello world"
local dogs = ngx.shared.db_lock
local shm_value = dogs:get(key)
if not shm_value then
local succ, err, forcible = dogs:set(key,value,10000)
ngx.log(ngx.INFO,tostring(succ)..","..tostring(err)..","..tostring(forcible))
end
local shm_value = dogs:get(key)
ngx.log(ngx.INFO,tostring(shm_value))
end
while true do
local data,r2,r3 = ngx.receive(10,6)
ngx.say("receive ret "..tostring(data).." "..tostring(r2).." "..tostring(r3) .. ","..collectgarbage("count"))
if not data then
ngx.say("exit")
ngx.exit()
end
--ngx.sleep(5)
--upstream_test(client_sock)
test_shm()
--collectgarbage()
ngx.wait_next_request()
end
Синтаксис: ngx.wait_next_request()
Контекст: process_by_lua*
Аргументы: нет
Возвращает: нет
Пример:
while true do
--process request
--...
ngx.wait_next_request()
end
Этот метод разделяет каждый запрос в одном соединении, сбрасывает буферы чтения/записи и переводит соединение в состояние ожидания. Этот метод является синхронной операцией и на 100% неблокирующей. Он вернётся при поступлении нового запроса или завершит выполнение кода Lua при истечении времени ожидания keepalive.
ngx.exit
Синтаксис: ngx.exit()
Контекст: process_by_lua*
Аргументы: нет
Возвращает: нет
Пример:
Этот метод завершает выполнение кода Lua и закрывает текущее клиентское соединение.
ngx.sleep
Синтаксис: ngx.sleep(время-в-секундах)
Контекст: process_by_lua*
Аргументы: время-в-секундах: спит указанное количество секунд без блокировки. Можно указать разрешение по времени до 0,001 секунды (то есть одну миллисекунду).
Возвращает: нет
Пример:
ngx.sleep(1.5)
ngx.utctime
Синтаксис: str = ngx.utctime()
Контекст: init_by_lua*, process_by_lua*
Аргументы: нет
Возвращает: str: текущая временная метка (в формате гггг-мм-дд чч:мм:сс) кэшированного времени nginx (без участия системного вызова, в отличие от функции os.date в Lua).
Пример:
Это время UTC.
ngx.localtime
Синтаксис: str = ngx.localtime()
Контекст: init_by_lua*, process_by_lua*
Аргументы: нет
Возвращает: str: возвращает текущую временную метку (в формате гггг-мм-дд чч:мм:сс) кэшированного времени nginx (без участия системного вызова, в отличие от функции os.date в Lua).
Пример:
Это местное время.
ngx.time
Синтаксис: secs = ngx.time()
Контекст: init_by_lua*, process_by_lua*
Аргументы: нет
Возвращает: secs: возвращает прошедшее количество секунд с начала эпохи для текущей временной метки из кэшированного времени nginx (без участия системного вызова, в отличие от библиотеки дат в Lua).
Пример:
Обновления кэша времени Nginx можно принудительно выполнить, вызвав сначала ngx.update_time.
ngx.now
Синтаксис: secs = ngx.now()
Контекст: init_by_lua*, process_by_lua*
Аргументы: нет
Возвращает: secs: возвращает число с плавающей запятой для прошедшего времени в секундах (включая миллисекунды как десятичную часть) с начала эпохи для текущей временной метки из кэшированного времени nginx (без участия системного вызова, в отличие от библиотеки дат в Lua).
Пример:
Обновления кэша времени Nginx можно принудительно выполнить, вызвав сначала ngx.update_time.
ngx.today
Синтаксис: str = ngx.today()
Контекст: init_by_lua*, process_by_lua*
Аргументы: нет
Возвращает: str: возвращает текущую дату (в формате гггг-мм-дд) из кэшированного времени nginx (без участия системного вызова, в отличие от библиотеки дат в Lua).
Пример:
Это местное время.
ngx.tcp_time
Синтаксис: str = ngx.tcp_time(sec)
Контекст: init_by_lua*, process_by_lua*
Аргументы: sec: временная метка в секундах (как те, что возвращаются из ngx.time).
Возвращает: str: возвращает форматированную строку, которую можно использовать в качестве заголовка времени HTTP.
Пример:
ngx.say(ngx.http_time(1290079655))
-- yields "Thu, 18 Nov 2010 11:27:35 GMT"
ngx.parse_tcp_time
Синтаксис: sec = ngx.parse_http_time(str)
Контекст: init_by_lua*, process_by_lua*
Аргументы: str: форматированная строка, которую можно использовать в качестве заголовка времени HTTP.
Возвращает: sec: временная метка в секундах (как те, которые возвращаются из ngx.time). Пример:
local time = ngx.parse_http_time("Thu, 18 Nov 2010 11:27:35 GMT")
if time == nil then
...
end
Разбор строки времени HTTP (возвращаемой ngx.http_time) в секунды. Возвращает секунды или nil, если входная строка имеет неправильный формат.
Синтаксис: ngx.update_time()
Контекст: init_by_lua*
, process_by_lua*
Аргументы: нет
Возвращает: нет
Пример:
Принудительно обновляет текущий кэш времени Nginx. Этот вызов включает системный вызов и поэтому имеет некоторые накладные расходы, поэтому не злоупотребляйте им.
Синтаксис: secs =ngx.start_time()
Контекст: process_by_lua*
Аргументы: нет
Возвращает: число с плавающей запятой, представляющее метку времени (включая миллисекунды в качестве десятичной части), когда был создан текущий запрос.
Пример:
Синтаксис: tcpsock = ngx.socket.tcp()
Контекст: process_by_lua*
Аргументы: нет
Возвращает: tcpsock: Создаёт и возвращает объект TCP (также известный как один из типов объектов «cosocket»).
Пример:
Для этого объекта поддерживаются следующие методы:
Он предназначен для совместимости с API TCP библиотеки LuaSocket, но на 100% неблокирующий. Кроме того, мы представляем несколько новых API для обеспечения дополнительных функций.
Объект cosocket, созданный этой функцией API, имеет точно такой же срок службы, что и обработчик Lua, создающий его. Поэтому никогда не передавайте объект cosocket другому обработчику Lua (включая функции обратного вызова ngx.timer) и никогда не делитесь объектом cosocket между различными запросами NGINX.
Для каждого соединения, лежащего в основе объекта cosocket, если вы явно не закроете его (через close) или не вернёте его обратно в пул соединений (через setkeepalive), он автоматически закрывается при возникновении одного из следующих двух событий:
Фатальные ошибки в операциях cosocket всегда автоматически закрывают текущее соединение (обратите внимание, что ошибка тайм-аута чтения является единственной ошибкой, которая не является фатальной), и если вы вызовете close для закрытого соединения, вы получите ошибку «closed».
После создания cosocket значение по умолчанию connect timedout устанавливается значением, заданным lua_socket_connect_timeout, значение по умолчанию send timedout — значением, заданным send_timeout, а значение по умолчанию read timedout — значением, заданным read_timeout. И это можно изменить с помощью tcpsock:settimeout в любое время.
Синтаксис: ok, err = tcpsock:connect(host, port, pool_name)
Контекст: process_by_lua*
Аргументы:
host: строковый тип, требуется IP-адрес или доменное имя port: числовой тип, [0,65536] pool_name: укажите собственное имя для используемого пула соединений. Если опущено, то имя пула соединений будет сгенерировано из шаблона строки "<host>:<port>"
Возвращает: ok, err возможные значения:
1,nil : подключение выполнено успешно. nil,<error msg> : не удалось.
Пример:
local ok,err = tcpsock:connect("127.0.0.1", 80, "httphost")
Вызов этого метода для уже подключённого объекта сокета приведёт к закрытию исходного подключения.
Вернуться к TOC Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:receive()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:receive_http()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:send()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:close()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:setoption()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:settimeout()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:getreusedtimes()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = tcpsock:setkeepalive()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = ngx.new_ssl_ctx()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = ngx.log()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = ngx.print()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = ngx.nlog()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: ok, err = nlog:send()
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxrefind
Синтаксис: captures, err = ngx.re.match(subject, regex, options?, ctx?, res_table?)
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
local m, err = ngx.re.match("hello, 1234", "[0-9]+")
if m then
-- m[0] == "1234"
else
if err then
ngx.log(ngx.ERR, "error: ", err)
return
end
ngx.say("match not found")
end
local m, err = ngx.re.match("hello, 1234", "([0-9])[0-9]+")
-- m[0] == "1234"
-- m[1] == "1"
Ищет соответствие строки регулярному выражению regex с опциями options. Возвращается только первое совпадение или nil, если совпадений нет. В случае ошибки возвращается err. Ошибки, такие как неправильное регулярное выражение или превышение предела стека PCRE, будут возвращены nil и строка с описанием ошибки.
При обнаружении совпадения возвращается таблица Lua captures, где captures[0] содержит всю сопоставляемую подстроку, а captures[1] — первое захваченное значение в скобках, captures[2] — второе и так далее.
Синтаксис: iterator, err = ngx.re.gmatch(subject, regex, options?)
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: iterator, err = ngx.re.sub(subject, regex, options?)
Контекст: process_by_lua*
Аргументы:
Возвращает: ok, err возможные значения:
Пример:
Синтаксис: iterator, err = ngx.re.gsub(subject, regex, options?)
Контекст: process_by_lua*
Аргументы:
Возвращает: iterator, err возможные значения:
Пример:
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxdecode_base64.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxencode_base64.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxmd5_bin.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxmd5.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxsha1_bin.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxcrc32_short.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxcrc32_long.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxhmac_sha1.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxescape_uri.
См. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxquote_sql_str.
Получение объекта словаря Lua на основе общей памяти для зоны общей памяти с именем. Определён с помощью директивы lua_shared_dict.
Зоны общей памяти всегда являются общими для всех рабочих процессов nginx в текущем экземпляре сервера nginx.
У результирующего объекта dict есть следующие методы:
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictget.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictget_stale.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictset.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictsafe_set.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictadd.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictsafe_add.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictreplace.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictdelete.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictincr.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictflush_all.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictflush_expired.
см. https://github.com/openresty/lua-nginx-module/blob/master/README.markdown#ngxshareddictget_keys.
Данный текст относится к технической направленности. Основной язык текста — английский.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )