Коллеги, подскажите пожалуйста Есть ресайзер на nginx location ~* /images/(?<folder>avatars|covers|wallpapers|banners)/(?<filename>.+).(?<ext>jpg|png) {

access_log off;
expires 24h;
add_header Cache-Control private;

content_by_lua_block{
local imgUri = '/images/' .. ngx.var.folder .. '/' .. ngx.var.filename .. '.' .. ngx.var.ext
local imgPath = '/var/www/litgorod/public' .. imgUri
local f = io.open(imgPath)
if f then
if ngx.var.arg_h or ngx.var.arg_w or ngx.var.arg_q or ngx.var.arg_t then
f:close()
local h = 0
local w = 0
local t = ''
local q = 75
local type = ''
if ngx.var.arg_h then h = ngx.var.arg_h end
if ngx.var.arg_w then w = ngx.var.arg_w end
if ngx.var.arg_q then q = ngx.var.arg_q end
if ngx.var.arg_t then t = ngx.var.arg_t end
if t == '1' then type = '^' end
if t == '2' then type = '!' end
local magick = require "imagick"
local img = magick.open(imgPath)
img:set_format('JPEG')
img:set_quality(q)
if h == 0 and w == 0 then
h = img:height()
w = img:width()
else
if h == 0 then h = math.floor((img:height() / img:width() * w) + 0.5) end
if w == 0 then w = math.floor((img:width() /img:height() * h) + 0.5) end
end
img:smart_resize(w .. 'x' .. h .. type)
ngx.header['Content-Type'] = 'image/jpeg'
ngx.say(img:blob())
else
ngx.header['Content-Type'] = 'image/jpeg'
ngx.say(f:read("*all"))
f:close()
end
else
ngx.exit(ngx.HTTP_NOT_FOUND)
end
}
}

location ~* \.(gif|jpg|png|ico|otf|sng|xls|doc|exe|jpeg|tgx|svg|js|css|fb2|epub|woff2|woff|ttf|eot|webp|json|map|mp4|webp)$ {
root /var/www/litgorod/public;
access_log off;
expires 24h;
add_header Cache-Control private;
}
Каждый раз при запросе url вида
/images/avatars/1459297197c16708254c0130af6377df.png
дергается lua скрипт
Хотелось бы дергать ресайзер только url вида
/images/avatars/1459297197c16708254c0130af6377df.png?w=48&h=48
Как корректно поправить локейшен что бы попадали только url из второго примера?
Пробовал дописывать регулярку, результат некорректен
Пробовал обернуть lua скрип в условие
if ($is_args) {
}
Аналогично

2 ответов

84 просмотра

Закинь это на пастебин, а то у меня монитор порвало в клочья.

Похожие вопросы

Обсуждают сегодня

Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Коллеги, приветствую! Появилась не совсем тривиальная задача реализовать в nginx редирект HTTPS —> HTTP. Да, именно так, а не наоборот. Мы разрабатываем embedded устройство,...
Никита
24
Карта сайта