Встроенные Lua-скрипты в Nginx расширяют возможности популярного Web сервера практически до бесконечности. При этом для Lua-скриптов у Nginx’а есть удобный интерфейс ngx для доступа к системным данным и функциям манипуляции запросом и ответом. Одна из популярных операций – это получение тела (POST) запроса, для чего используется функция:
local data = ngx.req.get_body_data()
## в переменной data будет лежать все тело запроса
Однако подобная инструкция перестанет работать, если размер запроса превысит [http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size буфер запроса]. Его можно увеличить, однако это крайне не рекомендуется делать. Крупные запросы лучше сразу записывать в файл, как это и делает Nginx. В таком случае, для получения тела запроса в Lua нужно использовать ngx.req.get_body_file().
В результате, правильный код для получения тела запроса независимо от размера будет такой:
local data = **ngx.req.get_body_data()**
if ( data == nil ) then
local handle = io.open(**ngx.req.get_body_file()**, “rb”)
data = handle:read(“*all”)
handle:close()
end
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…