Что я пытаюсь сделать для PoC и должен добавить href к веб-страницам, поступающим с динамического серверного сервера. Добавление href легко с помощью «subs_filter», но мне нужно использовать информацию, встроенную в ответ, для построения href.Nginx lua изменить html-ответ после proxy_pass
Можно ли использовать LUA для обработки ответа от proxy_pass, изменить его и вернуться к реквестору (клиенту)?
Любые предложения приветствуются.
Ниже приведен код, на который я смотрю, теперь я лучше понимаю Lua и как его использует nginx. Я вижу, что «body_filter» - правильный способ. Однако код кажется достаточно простым, но я не могу заставить регулярное выражение работать.
Дальше, я пытаюсь проанализировать возвращаемый ответ proxy_pass, проанализировать его для начала и конца времени, а затем построить URL-адрес сценария JS, помещенный в голову.
Пример ответа, который я хочу повторно задать.
Informações Adicionais
Horário de início: 08H50
Horário de término: 09H14
код из в «месте {}»
body_filter_by_lua '
-- my regex which is validate but doesn't seem to be within LUAJIT
--local from, to, err = ngx.re.find(ngx.arg[1], "(.início: *\d{2}H\d{2})", "jo")
local from, to, err = ngx.re.find(ngx.arg[1], "início", "jo")
replacestr = string.sub(ngx.arg[1], to, 5)
replaceme = "<script></script></head>"
ngx.arg[1] = ngx.re.sub(ngx.arg[1],"</head>", replaceme)
';
изменяющемся «INICIO» до «головы», например, работает, поэтому я предполагаю, что это на подчеркнутый символ, но я не удалось найти подтверждение этого.
Изменение "INICIO" к "\ d {2} H \ d {2}" не получится, "body_filter_by_lua: 5: недопустимой последовательности эвакуации вблизи« ""
Добро пожаловать в SO. Какие исследования вы сделали? – MickyD
Я пытаюсь использовать 'content_by_lua', также 'ngx.location.capture' и другие методы. Я, наконец, нашел, возможно, то, что я ищу, которое должно использовать «body_filter_by_lua» и установить «ngx.header.content_length = nil». –
Спасибо Энди, эта информация помогает другим, кто может помочь в целом. Это здорово, что вы думаете, что нашли решение. Если у вас есть это, подумайте о том, чтобы опубликовать его как «ответ» ниже для себя, только если другие могут столкнуться с одной и той же проблемой по треку. Вы должны уметь «отмечать» его как _an answer_. Спасибо buddy – MickyD